2014-02-06 50 views
0

一個值I要兩個合併兩個陣列與定製次序:從陣列中的兩個取從陣列的一個一個值,然後一個如下:PHP array_merge順序每個陣列

$array1 = array('key1' => 'value_1_1', 'key2' => 'value_1_2'); 
$array2 = array('key1' => 'value_2_1', 'key2' => 'value_2_2'); 

//merge array with custom order 

$array_result = array('key1' => array('value_1_1', 'value_2_1'), 
         'key2' => array('value_2_1', 'value_2_2') 
        ) 

值不同,鍵兩個陣列上都一樣。

+0

你不得不因爲你不能有重複的鍵值來重命名的鍵。 – helion3

+0

解決方案可以創建多個暗淡的數組,但關鍵必須是相同的 – Perocat

+0

這應該是相同的問題http://stackoverflow.com/questions/21512889/php-grouping-array-values-by-keys/ 21512967#21512967 – wonce

回答

0
$result = array(); 
foreach(array_keys($array1 + $array2) as $key) 
{ 
    if(array_key_exists($key, $array1) && array_key_exists($key, $array2)) 
     $result[$key] = array($array1[$key], $array2[$key]); 
    else 
     $result[$key] = array_key_exists($key, $array1) ? $array1[$key] : $array2[$key]; 
} 
-1

試試這個:

$array1 = array('key1' => 'value_1_1', 'key2' => 'value_1_2'); 
$array2 = array('key1' => 'value_2_1', 'key2' => 'value_2_2'); 
$result = array(); 

/* Create index for $result */ 
foreach($array1 as $data => $value) { 
    $result[$data] = array(); 
} 

/* Craete Value for $result from array 1*/ 
foreach($array1 as $data => $value) { 
    array_push($result[$data], $value); 
} 

/* Craete Value for $result from array 2*/ 
foreach($array2 as $data => $value) { 
    array_push($result[$data], $value); 
} 
2

內置功能

$result = array_merge_recursive($array1, $array2);