2015-08-17 59 views
1

我有數組如下:PHP數組添加鍵排列,使新數組沒有得到

$A = ["a","b","c"]; 
$B = ["1" , "2", "3"]; 

我想如下創建一個數組:

Array(["test"] => "a" 
     "val"=>1), 
    (["test"] => "b" 
     "val"=>2), 
    (["test"] => "c" 
     "val"=>3) 

我做了這樣的事情:

$data =array(); 


for($i=0;$i<count($A);$i++){ 

$data["test"] = $A[$i] ; 
$data['val'] = $B[$i] ; 

} 

但我得到的結果數組作爲唯一的最後一個值:

Array(["test"] => "c" 
      "val"=>3) 

缺少前兩個元素。請幫幫我。

回答

2

你的代碼是數組,每次循環execute.so你有,你要創建多維array.this會告訴你數據的改寫值..

$data =array(); 


    for($i=0;$i<count($A);$i++){ 

    $data[] = array('test' =>$A[$i],'val'=>$B[$i]) ; 


    } 
+0

乾杯工作! – Santhucool

+0

謝謝@KevinBrown下一次我會小心, –

0

$data["test"]$data["test"]被覆蓋。你需要讓他們陣列。

嘗試

$A = ["a","b","c"]; 
$B = ["1","2","3"]; 

for($i=0;$i<count($A);$i++) 
{ 
    $data[$i]["test"] = $A[$i]; 
    $data[$i]['val'] = $B[$i]; 
} 

print_r($data); 
+1

它與我的相同! –

2

可以使用array_map功能

$result = array_map(function($a,$b){return ['test' => $a,'val' => $b];},$A,$B); 
print_r($result); 
1

你剛纔自動覆蓋$數據值 '測試']和$數據[ 'VAL'。它應該是一個二維陣列和下面的代碼應該解決您的問題隊友。

$A = ["a", "b", "c"]; 
$B = ["1", "2", "3"]; 

$data = array(); 
for ($i = 0; $i < count($A); $i++) { 

    $data[$i]['test'] = $A[$i]; 
    $data[$i]['val'] = $B[$i]; 
} 
+0

我已經解釋了答案。 –