2015-09-01 66 views
1

我不得不數組:如何合併2個數組,其中1個是關鍵字,另一個是php中的值?

$arr1 = [ 
    'name' => 'Person Name', 
    'surname' => 'Person Surname', 
]; 

$arr2 = [ 
    'name' => 'John', 
    'surname' => 'Doe', 
]; 

我想使ARR1值成爲ARR2的數組鍵:

$arr = [ 
    'Person Name' => 'John', 
    'Person Surname' => 'Doe', 
]; 

還應注意,任何陣列的可以是任何順序,例如第一個數組名稱,然後姓氏和第二個數組是姓氏然後firstname。 任何幫助,將不勝感激。謝謝

我正在尋找一種更簡單的方式,而不必循環訪問數組並創建另一個。這裏是結果:

ksort($arr1); 
ksort($arr2); 
array_combine(array_values($arr1), array_values(array_intersect_key($arr2, $arr1))); 

回答

1

您可以輕鬆地做到這一點:

$new_array = array(); 
foreach((array) $arr1 as $index=>$key) 
{ 
    $new_array[$key] = $arr2[$index]; 
} 

其中$key是第一陣列和$arr2[$index]的關鍵是第二陣列的價值

+1

'(array)$ arr1'帶來了什麼? –

+0

(array)用於類型轉換 –

+1

我知道,但您爲什麼要在這裏使用它,因爲您已經知道'$ arr1'是一個數組? –

3

使用foreach

$arr3 = []; 
    foreach($arr1 as $key => $val){ 
    $arr3[$val] = $arr2[$key]; 
    } 
    print_r($arr3); 
相關問題