获取多维数组的值
Posted
技术标签:
【中文标题】获取多维数组的值【英文标题】: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>';
【问题讨论】:
【参考方案1】:城市位于子数组中,因此您需要在现有的 foreach 中进行第二次循环以遍历城市。
您可以创建一个新数组来捕获子循环中的各个城市名称,然后在您的<option>
中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】:从city
和implode
中提取name
元素:
foreach ($data['world'] as $key => $value)
$cities = implode(',', array_column($value['city'], 'name'));
$scenario .= '<option value="' . $key . '" data-city="' . $cities . '">' . $key .'</option>';
【讨论】:
非常感谢您的帮助以上是关于获取多维数组的值的主要内容,如果未能解决你的问题,请参考以下文章