2014-02-25 5 views
0

솔루션을 검색하여 배열을 다른 배열로 변환합니다. 내가 가진이 하나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 
       ) 
     ) 

) 

답변

2
$new_array = array(); 
foreach ($old_array as $country => $cities) 
{ 
    $new_array[] = array(
     'value' => $country, 
     'cities' => $cities 
    ); 
} 

이 작업을 수행해야합니다.

+0

내 대답은 @ 로켓트 - 위험물 하나는 귀하의 질문을 고려하지 않습니다,하지만 나는 그것이 읽고 이해하기 쉽기를 바란다 :) –

+0

내게 너무 간단, 수치심 : D 고마워! – ncrocfer

+0

@MARTINDamien : 나도 몰라. 나는 이것이 더 좋다고 생각한다 :-) –

2

당신은 array_map 사용할 수 있습니다

$newArray = array_map(function($key, $val){ 
    return array(
     'value' => $key, 
     'cities' => $val 
    ); 
}, array_keys($oldArray), $oldArray);