我搜索一个解决方案将一个数组转换为另一个数组。我有这个:
Array
(
[Germany] => Array
(
[0] => Munich
[1] => Frankfurt
)
[France] => Array
(
[0] => Paris
[1] => Marseille
[2] => Lille
[3] => Starsbourg
[4] => Lyon
[5] => Bordeaux
[6] => Toulouse
)
[Spain] => Array
(
[0] => Madrid
[1] => Barcelona
[2] => Valencia
)
)
将其转换为此的最佳方法是什么(例如array_filter或任何其他PHP函数):
Array
(
[0] => Array
(
[value] => Germany
[cities] => Array
(
[0] => Munich
[1] => Frankfurt
)
)
[1] => Array
(
[value] => France
[cities] => Array
(
[0] => Paris
[1] => Marseille
[2] => Lille
[3] => Starsbourg
[4] => Lyon
[5] => Bordeaux
[6] => Toulouse
)
)
[0] => Array
(
[value] => Spain
[cities] => Array
(
[0] => Madrid
[1] => Barcelona
[2] => Valencia
)
)
)
$new_array = array();
foreach ($old_array as $country => $cities)
{
$new_array[] = array(
'value' => $country,
'cities' => $cities
);
}
应该做这项工作。
您可以使用array_map
:
$newArray = array_map(function($key, $val){
return array(
'value' => $key,
'cities' => $val
);
}, array_keys($oldArray), $oldArray);