Dizi Birleştirme / Değiştir

5 Cevap php

Ben iki dizi var:

Array
(
    [2005] => 0
    [2006] => 0
    [2007] => 0
    [2008] => 0
    [2009] => 0
)

Array
(
    [2007] => 5
    [2008] => 6.05
    [2009] => 7
)

Ben bu iki dizileri böyle bir değer 2. dizide varsa, o ilk dizinin değerini üzerine yazar birleştirmek istiyorum. Yani edilen dizisi olacaktır:

Array
(
    [2005] => 0
    [2006] => 0
    [2007] => 5
    [2008] => 6.05
    [2009] => 7
)

Yardımlarınız için teşekkürler.

UPDATE: This was my best attempt, but it's wildly unsuccessful:

	$final = '';
	foreach ($years as $k => $v){
		if (in_array($k,$values)){
			$final .= $values[$k] . '|';
		}else{
			$final .= $k[$v] . '|';
		}

	}

	echo "final = $final";

5 Cevap

Ben sadece son zamanlarda öğrendiğim gibi, PHP bir array union operator tam olarak yapar vardır:

$result = $a + $b;

$ A öncelik almak istediğiniz değerleri ile dizi olduğu. (Yani örnekte, bu ikinci dizi "$a" olduğu anlamına gelir.

Bu sayısal tuşları bulunuyor Eh, array merge alışkanlık iş çünkü, bunun için yeni bir işlev oluşturmak gerekir ..

function combine($a1, $a2)
    foreach ($a2 as $k => $v) {
        $a1[$k] = $v;
    }
    return $a1;
}

Buyurun.

Bu kadar basit:

$new_array = array_replace(array_1,array_2);

the php manual page

Sadece bu basit olamaz:

$new_array = array_unique(array_merge($ar1,$ar2));

Belki de ben bir şey eksik ya da ben deliyim.

PHP ile aşina değilim, ama bir şey gibi:

foreach ($array2 as $i => $value) {
  $array1[$i] = $value;
}