2010-11-01 17 views
9
bu örnekte olduğu gibi, bir dizideki yerde tüm anahtarları tutmak ve değerleri listeleyen ederken iki diziler içine birleştirmek almak gerekir

ile diziler birleştiriliyor: BöylePHP, ortak anahtarları

$array1 = array('car' => '3', 'bus' => '2'); 
$array2 = array('dog' => '1', 'car' => '2', 'bird' => '9'); 

$merged = array(
    'car' => array('3','2'), 
    'bus' => array('2',null), 
    'dog' => array(null,'1'), 
    'bird' => (null,'9') 
); 

cevap

14
function merge_common_keys(){ 
    $arr = func_get_args(); 
    $num = func_num_args(); 

    $keys = array(); 
    $i = 0; 
    for ($i=0; $i<$num; ++$i){ 
     $keys = array_merge($keys, array_keys($arr[$i])); 
    } 
    $keys = array_unique($keys); 

    $merged = array(); 

    foreach ($keys as $key){ 
     $merged[$key] = array(); 
     for($i=0; $i<$num; ++$i){ 
      $merged[$key][] = isset($arr[$i][$key]) ? $arr[$i][$key] : null; 
     } 
    } 
    return $merged; 
} 

Kullanımı:

$merged = merge_common_keys($array1,$array2); 

PS. İkiden fazla diziyle çalışabilir, bir sonraki argüman olarak istediğiniz kadar geçiş yapabilirsiniz.

+1

Çok teşekkür ederim efendim. – Mohammad