我使用以下语句在数据库的1个表中的1列中搜索不同的条目:
SELECT DISTINCT column FROM table WHERE column entry LIKE '%keyword%'
这很好,因为转储mysqli\u查询会显示所提供的特定关键字的预期输入量。然后,我尝试将查询结果写入一维数组(数组在代码的其他地方声明):
while($row = mysqli_fetch_row($query)) {
$array[] = $row;
}
因此,我期望一个简单的数字一维数组,如下所示:
Array(
[0] => value 1
[1] => value 2
...
)
使用print\r($array)检查结果时,我得到如下数组:
Array(
[0] => Array([0] => value1)
[1] => Array([0] => value2)
...
)
我不知道这种奇怪的结构从何而来,因为这不是我代码中唯一的数组。我一步一步地检查了特定的代码块,得出的结论是问题出在数组的创建过程中。使用mysqli\u fetch\u assoc无法解决此问题。但这里到底有什么问题?
有没有人见过这样的事情,知道怎么解决这个问题?
提前谢谢。
2条答案
按热度按时间qmelpv7a1#
mysqli_fetch_row
获取作为枚举数组的结果行。除了nigel ren的方法,您还可以使用mysqli_fetch_assoc()
. 它将以关联数组的形式获取结果行。它将列名作为键,而不是像0,1..这样的数字。。;这样就有了更清晰的方法。现在有两个选项可以获得特定列值的一维数组。
使用columnname作为键,从结果行访问列值:
或者,
您可以首先准备二维数组(因为您可能有多个列);然后使用
array_column()
函数以获取作为一维数组的特定列值。或者,
nigel ren在评论中建议的另一种选择是使用
mysqli_fetch_all()
功能。vhmi4jdf2#
mysqli_fetch_row()
返回sql中列的数组,因此将其添加到数组中时。。。这将为每一行创建一个数组,即数组数组。如果将列值添加到数组中。。。
这应该给你的结果后。