php - 获取多维数组的值
问题描述
我有一个看起来像这样的 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>';
}
解决方案
城市位于子数组中,因此您需要在现有的 foreach 中进行第二次循环以遍历城市。
您可以创建一个新数组来捕获子循环中的各个城市名称,然后将implode()
它们放入您的<option>
:
$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
推荐阅读
- python - 在python 3中创建一个总单词数的字典
- android - 如何在相同的 x,y 值上管理多个标记视图
- php - SQL 语句中的 OR 运算符没有给出正确的结果
- python - 如何比较矩形并找到相似的?
- typescript - TypeScript overloads doesn't chose the expected one
- c - 使用递归扫描多个数字并计算扫描了多少偶数(在 c 中)
- c++ - 复制后 C++ 程序不需要管理员/UAC
- javascript - 使用 div 在图像顶部的位置的画布 drawImage
- python - 如何将 Python 中 openpyxl 创建的 Excel 工作表中的单元格设为“可格式化”?
- html - 横幅图像未在 Outlook 通知中正确呈现