Php 像多维数组一样从mysqli_fetch_数组读取数据?

Php 像多维数组一样从mysqli_fetch_数组读取数据?,php,mysqli,Php,Mysqli,当我使用mysqli\u fetch\u array()时,我得到了一个数组,但是我如何读取值呢?While循环是唯一的选项,或者我可以像多维数组一样从行和列中选取任何值,索引类似于行[0]列[3]?,而循环每次迭代都会获取一行 您可以使用多维数组获取所有行 之后,您可以使用pick your values与[rowNum][colNum] 但是,当您的结果有很多行时,请小心—数组可能非常大,并会导致内存或其他问题 更新以澄清: 如果要接收多维行数组,有两种方法: 首先:使用fetch\u as

当我使用
mysqli\u fetch\u array()
时,我得到了一个数组,但是我如何读取值呢?While循环是唯一的选项,或者我可以像多维数组一样从行和列中选取任何值,索引类似于
行[0]列[3]

,而
循环每次迭代都会获取一行

您可以使用多维数组获取所有行

之后,您可以使用pick your values与
[rowNum][colNum]

但是,当您的结果有很多行时,请小心—数组可能非常大,并会导致内存或其他问题

更新以澄清:

如果要接收多维行数组,有两种方法:

首先:使用
fetch\u assoc
/
fetch\u数组
迭代mysqli\u结果,并将行追加到数组中:

$rows = array();
while ($row = mysqli_fetch_array($res)) {
    $rows[] = $row;
}
echo $rows[0]['whatever'];
秒:通过一个函数调用接收所有结果:

$rows = mysqli_fetch_all($res, MYSQLI_ASSOC);
echo $rows[0]['whatever'];

就这些。没有更多的方法可用。

循环会在每次迭代中获取一行

您可以使用多维数组获取所有行

之后,您可以使用pick your values与
[rowNum][colNum]

但是,当您的结果有很多行时,请小心—数组可能非常大,并会导致内存或其他问题

更新以澄清:

如果要接收多维行数组,有两种方法:

首先:使用
fetch\u assoc
/
fetch\u数组
迭代mysqli\u结果,并将行追加到数组中:

$rows = array();
while ($row = mysqli_fetch_array($res)) {
    $rows[] = $row;
}
echo $rows[0]['whatever'];
秒:通过一个函数调用接收所有结果:

$rows = mysqli_fetch_all($res, MYSQLI_ASSOC);
echo $rows[0]['whatever'];

就这些。没有其他可用方法。

这取决于您如何从数据库返回结果

mysqli_fetch_数组函数中有一些标志,您可以设置这些标志来修改返回的结果

如果使用
$row=mysqli\u fetch\u数组($result,mysqli\u ASSOC)或在OOP
$row=$result->fetch_数组(MYSQLI_ASSOC)中

然后可以在while循环中以列名的形式访问返回的结果,如$row['name']或$row['age']

或者如果使用
$row=mysqli\u fetch\u数组($result,mysqli\u NUM)或在OOP
$row=$result->fetch_数组(MYSQLI_NUM)中

然后可以在while循环中访问返回的结果,如$row[0]或$row[3]

简单的例子是

while($row = mysqli_fetch_array($result)) {
    echo $row['name'] . " " . $row['age'];
}

以获取更多信息。阅读

这取决于您如何从数据库返回结果

mysqli_fetch_数组函数中有一些标志,您可以设置这些标志来修改返回的结果

如果使用
$row=mysqli\u fetch\u数组($result,mysqli\u ASSOC)或在OOP
$row=$result->fetch_数组(MYSQLI_ASSOC)中

然后可以在while循环中以列名的形式访问返回的结果,如$row['name']或$row['age']

或者如果使用
$row=mysqli\u fetch\u数组($result,mysqli\u NUM)或在OOP
$row=$result->fetch_数组(MYSQLI_NUM)中

然后可以在while循环中访问返回的结果,如$row[0]或$row[3]

简单的例子是

while($row = mysqli_fetch_array($result)) {
    echo $row['name'] . " " . $row['age'];
}

以获取更多信息。阅读

你的问题表明你的目标仅仅是获得一个值。如果是这样的话,您应该将查询限制为只返回您正在查找的内容,而不是获取所有内容,然后使用PHP在结果中查找您想要的内容

对于列,指定所需的一列,而不是使用
*
,(
从您的\u表中选择一列)
,对于行,使用
WHERE
子句选择特定id(前提是在表中定义的id),或使用
LIMIT
子句从结果集中选择特定行号。这样您就不必在循环中获取或获取全部。您的查询结果(如果成功的话)将只有一行一列,您可以获取一次并获取您的值


诚然,如果您需要重复执行此操作(即循环),这并不是最佳方法。

您的问题表明您的目标只是获得单个值。如果是这样的话,您应该将查询限制为只返回您正在查找的内容,而不是获取所有内容,然后使用PHP在结果中查找您想要的内容

对于列,指定所需的一列,而不是使用
*
,(
从您的\u表中选择一列)
,对于行,使用
WHERE
子句选择特定id(前提是在表中定义的id),或使用
LIMIT
子句从结果集中选择特定行号。这样您就不必在循环中获取或获取全部。您的查询结果(如果成功的话)将只有一行一列,您可以获取一次并获取您的值


诚然,如果您需要重复执行此操作(即循环),这并不是最好的方法。

谢谢您的回答!所以我应该这样做?而($row=mysql\u fetch\u assoc($query)){$persons[]=$row;}是的,您可以。最后,您将拥有与
mysqli\u fetch\u all
OK相同的数组,但是有更好的方法吗?我需要使用While循环将结果添加到数组中吗?更好的方法是做什么?像数组一样读取结果。但我猜是用$persons[2]['id'];我有第三排的身份证?谢谢你的回答!所以我应该这样做?而($row=mysql\u fetch\u assoc($query)){$persons[]=$row;}是的,您可以。最后,您将拥有与
mysqli\u fetch\u all
OK相同的数组,但是有更好的方法吗?我需要使用While循环将结果添加到数组中吗?更好的方法是做什么?像数组一样读取结果。但我猜是用$persons[2]['id'];我得到了第三行的id?这是一个数组。您可以像读取任何其他数组一样从中读取数据…
var\u dump($arr)
以查看w