我有一个多维数组,我正在尝试将另一个键/值对数组添加到现有数组中。
<?php
$finalArr = array();
$newArr = array(
'title' => 'lorem',
'vehicles' => array(
'type' => 'sedan',
'price' => 2900
)
);
array_push($finalArr, $newArr);
我想根据特定的
cars
值向 title
部分添加其他数组。我尝试过使用 array_merge
和 array_push
到目前为止没有效果。这是我目前的尝试:
// Get existing vehicles array by index
$index = array_search('lorem', array_column($finalArr, 'title'));
$oldArr = $finalArr[$index]['vehicles'];
// Create new array and append it to existing vehicles array
$addArr = array(
'type' => 'truck',
'price' => 4750
);
array_push($oldArr, $addArr);
// Add $newArr back to overall array
array_push($finalArr[$index]['vehicles'], $oldArr);
print_r($finalArr);
这几乎让我得到了我想要的,除了它返回这个:
Array
(
[0] => Array
(
[title] => lorem
[vehicles] => Array
(
[type] => sedan
[price] => 2900
[0] => Array
(
[type] => sedan
[price] => 2900
[0] => Array
(
[type] => truck
[price] => 4750
)
)
)
)
)
但是所需的输出将如下所示:
Array
(
[title] => lorem
[vehicles] => Array
(
[0] => Array
(
[type] => sedan
[price] => 2900
)
[1] => Array
(
[type] => truck
[price] => 4750
)
)
)
您应该如何更改代码。请注意,
vehicles
数组已经是多维的:
$finalArr = array();
$newArr = array(
'title' => 'lorem',
'vehicles' => array(
// New dimension added here
array(
'type' => 'sedan',
'price' => 2900,
),
)
);
array_push($finalArr, $newArr);
$index = array_search('lorem', array_column($finalArr, 'title'));
$addArr = array(
'type' => 'truck',
'price' => 4750
);
array_push($finalArr[$index]['vehicles'], $addArr);
print_r($finalArr);
小提琴在这里。