【问题标题】:PHP MySQLi mysqli_fetch_array Returns multiple arraysPHP MySQLi mysqli_fetch_array 返回多个数组
【发布时间】:2015-01-08 01:05:49
【问题描述】:

我正在尝试创建单列数据的一维枚举数组。

$dbc_db_filenames       = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
$query_db_filenames     = "SELECT file FROM transactions_tb WHERE file != ''";
$get_db_filenames       = mysqli_query($dbc_db_filenames, $query_db_filenames);
$array_rows             = array();
while($rows             = mysqli_fetch_array($get_db_filenames, MYSQLI_NUM)) {
    $array_rows = $rows;
    echo "<br /><br /><pre>";
    print_r($array_rows);
    echo "</pre><br />";
}
mysqli_close($dbc_db_filenames);

目前它返回多个这样的数组:

Array
(
    [0] => 2_20140908130612381070.jpg
)

Array
(
    [0] => 2_20140908131122368017.jpg
)

Array
(
    [0] => 2_20140908130449345689.jpg
)

我希望它返回一个这样的数组:

Array
(
    [0] => 2_20140908130612381070.jpg
    [1] => 2_20140908131122368017.jpg
    [2] => 2_20140908130449345689.jpg
)

我将目录内容与上传时存储在数据库中的文件名进行比较。要将目录内容放入数组中,我使用以下代码:

$list = scandir(UPLOAD_PATH);
echo '<br /><br /><pre>';
print_r($list);
echo '</pre><br />';

返回我想要的数组类型:

Array
(
    [0] => 2_20140908130612381070.jpg
    [1] => 2_20140908131122368017.jpg
    [2] => 2_20140908130449345689.jpg
)

【问题讨论】:

    标签: php arrays mysqli


    【解决方案1】:

    你试过了吗?

    while($rows             = mysqli_fetch_array($get_db_filenames, MYSQLI_NUM)) {
        $array_rows[] = $rows[0];
    }
    
    echo "<pre>";
    print_r($array_rows);
    echo "</pre>";
    

    【讨论】:

    • 是的..这让情况变得更糟。它创建了大量的数组集: Array ( [0] => Array ( [0] => 2_20140908130612381070.jpg ) ) Array ( [0] => Array ( [0] => 2_20140908130612381070.jpg ) [1] => Array ( [0] => 2_20140908131122368017.jpg ) ) 数组 ( [0] => 数组 ( [0] => 2_20140908130612381070.jpg ) [1] => 数组 ( [0] => 2_20140908131122368017.jpg ) [2] =>数组([0] => 2_20140908130449345689.jpg))
    • @Micah 您只需将其更改为$array_rows[] = $rows[0];。在循环之前初始化一个空数组总是一个好主意。
    • @Micah jeroen 是对的,在这种情况下尝试 $array_rows[] = $rows[0];这会做......请把 print_r($array_rows);在while循环之外。 _ __!
    • 你们俩都摇滚!在这之间: $array_rows[] = $rows[0]; ...还有这个:把 print_r($array_rows);在while循环之外......它做到了。我已经找了几个小时了。感谢您的超级快速帮助:)
    • 这是我在这里的第一个问题,我不知道协议。我应该继续并将其标记为答案..让你们中的一个更新完整的答案还是自己发布更新并标记它?谢谢!
    猜你喜欢
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2016-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    • 1970-01-01
    相关资源
    最近更新 更多