在PHP中循环关联数组时出错

时间:2015-03-27 22:07:52

标签: php

我收到以下错误:

  

注意:第37行的数组到字符串转换   0:数组

尝试运行以下内容时:

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."");
}

3 个答案:

答案 0 :(得分:0)

正如@ Rizier123正确指出的那样,您正试图通过多维数组的顶层foreach ()。您的MySQLi查询将返回具有嵌入级别数组的$results数组。如果您在MySQL行和单元格方面考虑$results,那么您可以通过$results循环到每个$row,但也应该循环遍历每个$row& #39; s $cell s。

试试这个

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 . "";
    }
}

答案 1 :(得分:0)

循环订单的正确方法:

$all_orders = mysqli_fetch_all($result,MYSQLI_ASSOC);
foreach ($all_orders as $order) {
echo $order["order_name"].": ".$order["id"];
}

答案 2 :(得分:0)

当您尝试将数组的值作为字符串获取时,通常会收到此警告或错误。这说你有多维数组,但是你正在尝试将子数组的值作为字符串。首先尝试使用此命令print_r($variable)来检查变量的实际输出。你可以像这样循环内部和数组:

foreach($orders as $order)
{
 echo $order->orderId. " | ". $order->orderName;
}

当我需要为我的模型使用这个循环时,一定是时间。但通常我在框架中使用ORM。也许我也可以在你的情况下使用!