在PHP中循环通过关联数组时出错
我得到以下错误: 注意:第37行中的数组到字符串转换 0:数组 尝试运行以下操作时:在PHP中循环通过关联数组时出错,php,Php,我得到以下错误: 注意:第37行中的数组到字符串转换 0:数组 尝试运行以下操作时: while($allOrders = mysqli_fetch_assoc($result)) { $orderName = $allOrders["order_name"]; $orderId = $allOrders["id"]; $orders[] = array($orderName => $orderId); } foreach ($orders as $orderNam
while($allOrders = mysqli_fetch_assoc($result)) {
$orderName = $allOrders["order_name"];
$orderId = $allOrders["id"];
$orders[] = array($orderName => $orderId);
}
foreach ($orders as $orderName1 => $orderId1) {
echo("".$orderName1.": ".$orderId1."");
}
正如@Rizier123正确指出的那样,您正试图通过多维数组的顶层
foreach()
。您的MySQLi查询将返回一个带有嵌入式数组级别的$results
数组。如果从MySQL行和单元格的角度考虑您的$results
,您将通过$results
循环到每个$row
,但也应该通过每个$row
的多个$cell
循环
试试这个
foreach ($result as $row => $rowvalue) { // now $row is the row name in the array, and $rowvalue is the individal row array itself
// some work
foreach ($rowvalue as $cell => $cellvalue) { // now $cell is the cell name in the array, and $cellvalue is the cell value string itself
// display your cell names and values
echo "" . $cell . ": " . $cellvalue . "";
}
}
循环订单的正确方式:
通常,当您试图以字符串形式获取数组的值时,会收到此警告或错误。这意味着您有多维数组,但您正在尝试以字符串形式获取子数组的值。首先尝试使用此命令
print\r($variable)
检查变量的实际输出。也可以像这样在内部和数组中循环:
foreach($orders as $order)
{
echo $order->orderId. " | ". $order->orderName;
}
一定是时候了,当我的模型需要这个循环时,我就是这样做的。但我通常在框架中使用ORM。也许我也可以用在你的情况下 我刚刚注意到代码的格式不正确,因为您有一个多维数组!所以你需要2个foreach循环!打印($orders)代码>您将看到我mean@pennst8:看看我的答案,你不应该在订单上循环两次。假设ID是唯一的,而名称可能不是唯一的,我会使用$orders[$orderId]=$orderName;和foreach($orderId=>$orderName){…}
foreach($orders as $order)
{
echo $order->orderId. " | ". $order->orderName;
}