首页 > 解决方案 > 将带有键的数组值添加到多维数组而不添加新的“层”

问题描述

我发现了几个类似的主题,但没有一个能准确回答我的需要。我想将数据添加到多维数组的特定键索引 - 而不添加新的数组层或删除其他数组层。

我试图用 array_merge 和正常的添加到数组方法来解决它。

这是我的数组:

$array = [
    'capital' => [
        'Germany' => 'Berlin',
        'Austria' => 'Vienna',
        'France' => 'Paris',
    ],
    'currency' => [
        'Germany' => 'Euro',
        'Austria' => 'Euro',
        'France' => 'Euro',
    ],
 ];

如果我尝试

$newData2 = [
    'Italy' => 'Rome',
    'China' => 'Beijing',
];
$array['capital'][] = $newData2;

我明白了

$array = [
    'capital' => [
        'Germany' => 'Berlin',
        'Austria' => 'Vienna',
        'France' => 'Paris',
        [
            'Italy' => 'Rome',
            'China' => 'Beijing',
        ],
    ],
    'currency' => [
        'Germany' => 'Euro',
        'Austria' => 'Euro',
        'France' => 'Euro',
    ],
 ];

这是不正确的,两个新的应该和其他的在同一个数组层上。

如果我使用 array_merge,则删除数组的货币部分:

 array_merge($array['capital'], $newData2);

我的数组应该是这样的:

$array = [
    'capital' => [
        'Germany' => 'Berlin',
        'Austria' => 'Vienna',
        'France' => 'Paris',
        'Italy' => 'Rome',
        'China' => 'Beijing',
    ],
    'currency' => [
        'Germany' => 'Euro',
        'Austria' => 'Euro',
        'France' => 'Euro',
    ],
 ];

标签: phparrays

解决方案


你可以试试这个

 $array['capital']['Italy'] = 'Rome';
 $array['capital']['China'] = 'Beijing';

推荐阅读