簡體   English   中英

PHP中多維數組的foreach循環

[英]foreach loop for multidimensional array in php

我有一個具有鍵值的多維數組。 我想循環該數組中的數據,但我不知道如何。

這是我的數組:

{
  "success": "1",
  "order_details": [
    {
      "item_order": 5,
      "address": "155, Mani Nagar Society, Nana Varachha, Surat, Gujarat 395006, India",
      "contact": "95303709",
      "total_price": "3330.0",
      "order_place": "18-05-25 06-07-20",
      "preparing_date_time": "",
      "preparing_status": "Deactivate",
      "dispatched_date_time": "",
      "dispatched_status": "Deactivate",
      "delivered_date_time": "",
      "delivered_status": "Deactivate",
      "menu": [
        {
          "menu_name": "demo item",
          "item_amt": "200",
          "Ingredients": [
            {
              "ingredients_name": "burger",
              "ingredients_price": "200"
            },
            {
              "ingredients_name": "pizza1",
              "ingredients_price": "800"
            }
          ]
        }
      ]
    }
  ]
}

如何循環/遍歷該數組?

我猜在foreach中有一個foreach,但是我不知道該怎么做。

在array_walk_recursive手冊中,有一個適合您的示例。
http://php.net/manual/en/function.array-walk-recursive.php

$arr = json_decode($str, true); //$str is your json string

array_walk_recursive($arr, 'test_print');

function test_print($item, $key)
{
    echo "[$key]: $item\n";
}

https://3v4l.org/dVUMS

如果只想輸出數組的某些元素,則可以使用要輸出的項目創建一個數組,並將其傳遞給函數。
然后使用in_array查看它是否是輸出。

https://3v4l.org/8ZvUS

使用此代碼:

    <?php

$jsonData = '{
  "success": "1",
  "order_details": [
    {
      "item_order": 5,
      "address": "155, Mani Nagar Society, Nana Varachha, Surat, Gujarat 395006, India",
      "contact": "95303709",
      "total_price": "3330.0",
      "order_place": "18-05-25 06-07-20",
      "preparing_date_time": "",
      "preparing_status": "Deactivate",
      "dispatched_date_time": "",
      "dispatched_status": "Deactivate",
      "delivered_date_time": "",
      "delivered_status": "Deactivate",
      "menu": [
        {
          "menu_name": "demo item",
          "item_amt": "200",
          "Ingredients": [
            {
              "ingredients_name": "burger",
              "ingredients_price": "200"
            },
            {
              "ingredients_name": "pizza1",
              "ingredients_price": "800"
            }
          ]
        }
      ]
    }
  ]
}';

$jsonDecode = json_decode($jsonData);



foreach ($jsonDecode->order_details as $orderDetail) {

    echo "Item order: " . $orderDetail->item_order;
    echo "<br>";
    echo "Address: " . $orderDetail->address;
    echo "<br>";
    echo "Contact: " . $orderDetail->contact;
    echo "<br>";

    foreach ($orderDetail->menu as $menuItem) {

        echo "Menu Name: " . $menuItem->menu_name;
        echo "<br>";
        echo "Item amt: " . $menuItem->item_amt;
        echo "<br>";

        foreach ($menuItem->Ingredients as $ingredientsItem) {

            echo "Ingredients name: " . $ingredientsItem->ingredients_name;
            echo "<br>";
            echo "Ingredients price: " . $ingredientsItem->ingredients_price;
            echo "<br>";
        }
    }
}

輸出:

Item order: 5
Address: 155, Mani Nagar Society, Nana Varachha, Surat, Gujarat 395006, India
Contact: 95303709
Menu Name: demo item
Item amt: 200
Ingredient name: burger
Ingredient price: 200
Ingredient name: pizza1
Ingredient price: 800

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM