为什么我会得到一个多级数组?

时间:2016-10-19 10:46:21

标签: php arrays

我需要一个包含名称列表的数组,所以我只是从数据库中获取它们,但是当我打印数组时,我注意到它将每个名称存储到一个单独的数组中。为什么会这样,我怎么才能将它们存储在一个?

我的代码:

<?
//  Product names
$producten             = "SELECT `naam` FROM `producten`";
$productencon          = $conn->query($producten);
$productencr           = array();
while ($productencr[] = $productencon->fetch_array());
echo '<pre>';
print_r($productencr);
echo '</pre>';
?>

该打印数组的输出是:

enter image description here

2 个答案:

答案 0 :(得分:2)

因为fetch_array将同时返回列的关联名称和数字索引。

如果您只想要使用的列名称为fetch_assoc,或者您只想使用数字,则应使用fetch_row

fetch_arrayfetch_assocfetch_row

的组合

如果您想保留fetch_array,您还可以将结果类型指定为第一个参数。默认值为MYSQLI_BOTH

您可以在此处查看更多内容:http://php.net/manual/en/mysqli-result.fetch-array.php

答案 1 :(得分:0)

试试这个

$output=array();
while ($productencr = $productencon->fetch_array()){
    $output[]=$productencr["naam"];
}
echo '<pre>';
print_r($output);
echo '</pre>';