2012-09-12 41 views
4

我得到了以下陣列:array_merge改變鍵

$arr = array(6 => 'Somedata', 7 => 'Somedata1', 8 => 'Somedata2'); 

的問題是,當我使用array_merge((array) "Select the data", $arr);,它確實改變了數組鍵爲:

Array 
(
    [0] => Not specified 
    [1] => Somedata 
    [2] => Somedata1 
    [3] => Somedata2 
) 

是可以跳過array_merge密鑰preversion,所以輸出看起來像這樣?

Array 
(
    [0] => Not specified 
    [6] => Somedata 
    [7] => Somedata1 
    [8] => Somedata2 
) 
+0

,請告訴我們的代碼。 'array_merge'是[默認保存鍵](http://codepad.org/I9YcWzdl) – Peter

+0

@EXQStudio代碼在我的問題的第二行,有一個簡單的'array_merge((array)]選擇數據「 ,$ arr);'之後和'print_r'轉儲之後。 – Sapp

+0

你爲什麼要將字符串轉換爲數組?爲什麼不'Array(「選擇數據」)'? – Peter

回答

8

使用+ operator創建2個陣列的工會:

$arr = array(6 => 'Somedata', 7 => 'Somedata1', 8 => 'Somedata2'); 

$result = (array)'Select the data' + $arr; 

var_dump($result); 

結果:

array(4) { 
    [0]=> 
    string(15) "Select the data" 
    [6]=> 
    string(8) "Somedata" 
    [7]=> 
    string(9) "Somedata1" 
    [8]=> 
    string(9) "Somedata2" 
} 
+0

謝謝,它現在的工作! :-) – Sapp

+0

但要小心,如果數組有相同的密鑰,這可以覆蓋數據。嘗試使用'$ arr = array(0 =>'Somedata',7 =>'Somedata1',8 =>'Somedata2');'作爲輸入運行它。 – Fluffeh