获取多维数组的值

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 中进行第二次循环以遍历城市。

您可以创建一个新数组来捕获子循环中的各个城市名称,然后在您的&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>';

【讨论】:

非常感谢您的帮助

以上是关于获取多维数组的值的主要内容,如果未能解决你的问题,请参考以下文章

动态获取/设置多维数组中的值的函数

在php中获取多维数组中键的值

使用jquery将多个输入框的值获取到多维数组中

获取多维 NumPy 数组中最大值的位置

php改变多维数组的值

多维数组