2012-08-15 123 views
-1

我有沒有鍵的嵌套數組。我想按特定順序添加鍵。什麼是乾淨的方式來做到這一點?PHP將鍵添加到嵌套數組

從這個數組開始。它只是按位置索引的。

[0] => (
    [0] => Tyler 
    [1] => Durden 
    [2] => 05/07/1985 
) 
[1] => (
    [0] => Edward 
    [1] => Norton 
    [2] => 03/21/1988 
) 

現在,爲了將這些鍵:

['first_name'] => 
['last_name'] => 
['birthday'] => 

最終陣列:

[0] => (
    ['first_name'] => Tyler 
    ['last_name'] => Durden 
    ['birthday'] => 05/071985 
) 
[1] => (
    ['first_name'] => Edward 
    ['last_name'] => Norton 
    ['birthday'] => 03/21/1988 
) 

獎金upvotes如果你的代碼允許,而不是硬編碼的任意鍵結構,!

+0

我用了一堆嵌套的foreach循環的嘗試過自己。這是超效率和清晰的,一個更優雅的方法必須存在。我自己試了一下,謝謝。我也瀏覽了所有的PHP函數,但沒有意識到array_combine可以在這種情況下工作。 – 2012-08-15 19:08:57

回答

4

我想array_combine將這樣的伎倆:

foreach ($bigarray as &$x) { 
    $x = array_combine(array('first_name','last_name','birthday'),$x); 
} 
+0

'($ bigarray as&$ x)'中的&符號是什麼? – 2012-08-15 18:39:46

+1

&符號讓我們循環訪問數組[通過引用](http://www.php.net/manual/en/language.references.whatdo.php),以便我們可以隨時更改數組值。 – awm 2012-08-15 18:41:55

0

而且經典algorythm:

foreach ($array as $key=>$value) { 
    $array[$key]['first_name'] = $array[$key][0]; 
    $array[$key]['last_name'] = $array[$key][1]; 
    $array[$key]['birthday'] = $array[$key][2]; 
    unset($array[$key][0]); 
    unset($array[$key][1]); 
    unset($array[$key][2]); 
}