PHP :变换一个多维数组



我搜索一个解决方案将一个数组转换为另一个数组。我有这个:

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);

最新更新