2014-10-09 147 views
0

全部,有沒有更簡單的方法來取消嵌套數組?

你將如何「取消嵌套」數組以便更容易循環?

你會如何轉換下面的陣列...

Array 
(
    [0] => Array 
     (
      [0] => Array 
       (
        [key1] => data1 
        [key2] => data2 
        [key3] => data3 
       ) 
     ) 
    [1] => Array 
     (
      [0] => Array 
       (
        [key1] => data4 
        [key2] => data5 
        [key3] => data6 
       ) 

     ) 
) 

的東西管理這樣的....?

Array 
(
    [0] => Array { 
     [key1] => data1 
     [key2] => data2 
     [key3] => data3 
     } 
    [1] => Array (
     [key1] => data4 
     [key2] => data5 
     [key3] => data6 
     ) 
) 
+2

您是如何在第一個地方創建數組的?這可能比隨後重構它更容易 – 2014-10-09 15:56:14

+0

您需要一個簡單的循環。有什麼問題?你的代碼在哪裏? – 2014-10-09 15:57:42

+0

爲了取消這個數組的嵌套,你將不得不處理它,所以好處在哪裏? – RiggsFolly 2014-10-09 15:58:04

回答

6

是的,有!

$newArray = array_map('end', $oldArray); 

此代碼簡單地適用end到源陣列的每個元素,並收集結果到一個新的數組。例如,如果這樣的元件是

Array 
    (
     [0] => Array 
      (
       [key1] => data1 
       [key2] => data2 
       [key3] => data3 
      ) 
    ) 

end結果將是

 Array 
      (
       [key1] => data1 
       [key2] => data2 
       [key3] => data3 
      ) 

基本上end「解開」內陣列,從而擺脫一個嵌套級的。由於總是隻有一個子陣列,因此您也可以使用currentreset來產生相同的效果。

+0

不錯!函數式編程ftw。 – 2014-10-09 16:06:38

+0

我想我只是不明白他爲什麼使用'結束'作爲回調,或者爲什麼這會起作用。 – 2014-10-09 16:13:28

+0

令人震驚。謝謝。 – Darius 2014-10-09 16:13:30

相關問題