【问题标题】:get value to multidimensional array获取多维数组的值
【发布时间】:2021-11-01 21:35:27
【问题描述】:

我有一个看起来像这样的 json 文件:

{
"world": {
    "france": {
        "city": {
            "city_1": {
                "name": "paris",
                "titre": "lorem ipsum"
            },
            "city_2": {
                "name": "marseille",
                "titre": "dolor sit amet"
            }
        }
    },
    "usa": {
        "city": {
            "city_1": {
                "name": "new york",
                "titre": "lorem ipsum"
            },
            "city_2": {
                "name": "los angeles",
                "titre": "lorem ipsum"
            },
            "city_3": {
                "name": "portland",
                "titre": "lorem ipsum"
            }
        }
    }
}
}

我想显示带有城市的国家/地区列表,如下所示:

<option value="france" data-city="paris,marseille">france</option>
<option value="usa" data-city="new york,los angeles,portland">usa</option>

我尝试了类似的方法来显示国家/地区,但无法显示城市列表

    foreach ($data['world'] as $key => $value)
{

    $scenario .= '<option value="' . $key . ' data-city="">' . $key .'</option>';
}

【问题讨论】:

    标签: php json recursion foreach


    【解决方案1】:

    城市位于子数组中,因此您需要在现有的 foreach 中进行第二次循环以遍历城市。

    您可以创建一个新数组来捕获子循环中的各个城市名称,然后在您的&lt;option&gt;implode() 它们:

    $cityArray = array();
    foreach($values['city'] as $cityKey=>$cityValue) {
        $cityArray[] = $cityValue['name'];
    }
    
    $scenario .= '<option value="' . $key . ' data-city="'.implode(',',$cityArray).'">' . $key .'</option>';
    

    这是一个工作示例:https://3v4l.org/l986m

    【讨论】:

      【解决方案2】:

      cityimplode 中提取name 元素:

      foreach ($data['world'] as $key => $value)
      {
          $cities = implode(',', array_column($value['city'], 'name'));
          $scenario .= '<option value="' . $key . '" data-city="' . $cities . '">' . $key .'</option>';
      }
      

      【讨论】:

      • 非常感谢您的帮助
      猜你喜欢
      • 2017-10-26
      • 1970-01-01
      • 2012-04-26
      • 2023-03-03
      • 1970-01-01
      • 2015-05-20
      相关资源
      最近更新 更多