首页 > 解决方案 > 如何显示位于多维数组第二级的 json 值?

问题描述

解决此代码时遇到问题。这些是数组

大批
(
    [0] => 标准类对象
        (
            [id] => 1
            [名称] => 豪华
            [价格] => 213
            [描述] =>
            [电视] => 0
            [早餐] => 0
            [公园] => 0
            [wifi] => 0
            [交流] => 0
            [占用] =>
            [大小] =>
            [查看] =>
            [服务] =>
            [露台] => 0
            [拾取] => 0
            [互联网] => 0
            [健身房] => 0
            [注] =>
            [房间细节] => {"img":["images/logo2.png","images/logo.png"]}
        )

    [1] => 标准类对象
        (
            [id] => 2
            [名称] => hjghj
            [价格] => 234
            [描述] =>
            [电视] => 0
            [早餐] => 0
            [公园] => 0
            [wifi] => 0
            [交流] => 0
            [占用] =>
            [大小] =>
            [查看] =>
            [服务] =>
            [露台] => 0
            [拾取] => 0
            [互联网] => 0
            [健身房] => 0
            [注] =>
            [房间详情] =>
        )

)

我想在 room_details 下回显每个图像以显示如下

图片/logo2.png
图片/logo.png

这是我的代码

    foreach ($roomandsuits as $i => $item) {

      $array_links = json_decode($item->room_details, true); {

        foreach ($array_links as $key => $value) {   

          foreach ($value as $content) {

       回声$内容;

       }           
       }     
      }
     }

第 3 行出错并显示如下

图片/logo2.png
图片/logo.png

警告:在 C:\xampp\htdocs\resort\modules\mod_roomandsuits\tmpl\default.php 第 10 行 images/logo.png 中为 foreach() 提供的参数无效

标签: phparraysjson

解决方案


在将数组传递给foreach.

中的第二个元素$roomandsuits有一个空的“room_details”。无论如何,您将其通过json_decode()并立即传递给 foreach。

$array_links = json_decode($item->room_details, true); // there was a misplaced opening brace here previously...

if (!is_array($array_links)) {
    continue;
}

foreach ($array_links as $key => $value) {   

推荐阅读