2013-05-03 16 views
0

我有多維數組是創建一個像複雜陣推到第一指數

$column = array( 
"person#1"=> array ("name"=>"Leon" , "Age"=>"19"), 
"person#2"=> array ("name"=>"Gary" , "Age"=>"31"), 
"person#3"=> array ("name"=>"May" , "Age"=>"25") 
) 

現在,我想要的是像

"person#4"=> array ("name"=>"Tony" , "Age"=>"28") 

推的東西放在第一位陣列列。

我不得不考慮

array_unshift($column, array("person#1"=> array ("name"=>"Tony" , "Age"=>"28")); 

它沒有更換陣列和變量與我的數組,但總是 '0' 索引,而不是person#4如預期

+0

對不起,我沒有完全按照你的問題。你的意思是說你想在#1號人物之前放置#4號人物,還是你想將#1號人物替換爲#4號人物? – Passerby 2013-05-03 03:03:18

+0

我想把它放在人物#1之前沒有索引到'0' – 2013-05-03 03:04:18

回答

2

使用array_merge()

<?php 
header('Content-Type: text/plain'); 

$column = array(
"person#1"=> array ("name"=>"Leon" , "Age"=>"19"), 
"person#2"=> array ("name"=>"Gary" , "Age"=>"31"), 
"person#3"=> array ("name"=>"May" , "Age"=>"25") 
); 

$column = array_merge(array("person#4" => array ("name" => "Tony" , "Age" => "28")), $column); 

var_dump($column); 
?> 

顯示:

array(4) { 
    ["person#4"]=> 
    array(2) { 
    ["name"]=> 
    string(4) "Tony" 
    ["Age"]=> 
    string(2) "28" 
    } 
    ["person#1"]=> 
    array(2) { 
    ["name"]=> 
    string(4) "Leon" 
    ["Age"]=> 
    string(2) "19" 
    } 
    ["person#2"]=> 
    array(2) { 
    ["name"]=> 
    string(4) "Gary" 
    ["Age"]=> 
    string(2) "31" 
    } 
    ["person#3"]=> 
    array(2) { 
    ["name"]=> 
    string(3) "May" 
    ["Age"]=> 
    string(2) "25" 
    } 
} 
+0

它像預期的那樣工作,謝謝 – 2013-05-03 03:19:06

+1

@Leon Armstrong,歡呼聲。但有一個選項** w0rldart **的版本與'$ column = array(「person#4」=> array(「name」=>「Tony」,「Age」=>「28」))+ $列;'。工程相同(但未完全測試)。 – BlitZ 2013-05-03 03:21:32

+0

我想我只是按照自己的方式,它更容易理解 – 2013-05-03 03:32:40

3

爲什麼不做一個簡單的$new_person + $column

+1

到第一個堆棧 – 2013-05-03 03:07:45

+0

肯定比我更好) – BlitZ 2013-05-03 03:08:34

+0

看起來你的代碼更乾淨,但是有沒有辦法將第四個人推到第一個堆棧? – 2013-05-03 03:18:25