2013-05-22 49 views
0

我有兩個數值數組(這些數組總是具有相同數量的鍵和值)。用兩個數組在php中填充數組

$array1 = array(0 => "key1", 1 => "key2"); 
$array2 = array(0 => "value1", 1 => "value2"); 
$array_final = array(value of the $array1 => $value of the array2); 

如果我寫了一段時間,並填補了$array_final,它只與去年鍵和值填充

所以這是這樣的:

for ($i = 0; $i < count($array(1)) 
{ 
    $array_final = array($array1[$i] => $array2[$i]); 
} 
$array_final = array("key2" => "value2"); 

但我想:

$array_final = array("key1" => "value1", "key2" => "value2"); 
+0

你的意思是你想在一個數組中有2個相同的索引?沒有它不可能。 – Kasyx

+0

查看array_combine – Orangepill

+0

每次在循環中覆蓋數組時,請查看Majid L解決方案。這是如何添加項目。 – bouscher

回答

1

你想要array_combine

它確實exatcly你需要什麼

所以基本上

$array1 = array(0 => "key1", 1 => "key2"); 
$array2 = array(0 => "value1", 1 => "value2"); 

$array_final = array_combine($array1, $array2); 
+0

Thx人,我不知道它存在於PHP!謝謝 ! – KeizerBridge

1
for ($i=0; $i< sizeof($array1) && $i< sizeof($array2) ; $i++) 
{ 
    $array_final[$array1[$i]] =$array2[$i]; 
} 
+0

Thx工作正常,但array_combine的方法佔用更少的行;)! – KeizerBridge

+0

oui c'est clair :) –

0

你可以試試下面的代碼。

 


     $array1 = array(0 => "key1", 1 => "key2"); 
     $array2 = array(0 => "value1", 1 => "value2"); 
     $array_final = combine_if_same_keys($array1,$array2); 
     print_r($array_final); 


     function combine_if_same_keys($array_one, $array_two) { 

     $expected = false; 

      ksort($array_one); 
      ksort($array_two); 

     $diff = array_diff_key($array_one, $array_two); 
     if(empty($diff) && count($array_one) == count($array_two)) { 
      $expected = array_combine($array_one, $array_two); 
     } 

      return $expected; 
     }