2016-01-13 36 views
2

我有以下陣列(注意「CAP3」)多維數組:壓扁了一些空的子鍵

$myarray = array(
"Cap1" => array(
    "Sub11" => 1 , 
) , 
"Cap2" => array(
    "Sub21" => 2 , 
    "sub22" => 3 , 
) , 
"Cap3" => array(
    4 
) , 
"Cap4" => array(
    "Sub41" => 5 , 
) , 
) ; 

對於第1,2,4 array_walk_recursive完美的作品。但是我對Cap3有問題。在那裏,我與0 => 4.獲取,但我想獲得的follwoing陣列:

$result = array(
    "Sub11" => 1 , 
    "Sub21" => 2 , 
    "sub22" => 3 , 
    "Cap3" => 4 , 
    "Sub41" => 5 , 
) ; 

任何想法如何我能得到這個?不幸的是我不能改變輸入數組。

非常感謝。

回答

0

這裏是你的答案: -

$result =[]; 
foreach($myarray as $key=>$val){ 

     foreach($val as $k => $v){ 
      if($k !== 0){     
       $result[$k] = $v; 
      }else{     
       $result[$key] = $v; 
      } 
     } 
} 

echo '<pre>'; print_r($result); 

輸出: -

Array 
(
    [Sub11] => 1 
    [Sub21] => 2 
    [sub22] => 3 
    [Cap3] => 4 
    [Sub41] => 5 
) 
+0

非常感謝!奇蹟般有效。 – cyberjoe123

+0

@ cyberjoe123:不客氣。請提出答案;) –