PHP iki dizi (anahtar ve içeriği) Birleştirme

3 Cevap php

Ben aşağıdaki gibi bir dizi var

Array ([0] => "txt1" [1] => "txt2" [2] => "txt3")

I have another array like it but with different content : Array ( [0] => on [2] => on)

Amaç ikinci tuşları ve ilk içeriği, bunları birleştirme gibi bir nihai dizi elde etmektir.

Nihai sonuç, böylece: Array ([0] => "txt1" [2] => "txt3") Bu 0'a tuşlarını değiştirmek için daha iyi olurdu - 1, ama önemsiz bir konu olduğunu, Onları birleştirme odaklanalım 1-1.

3 Cevap

Bunu yapmanın en kolay yolu ile array_intersect_key (See the PHP Docs). Bu, iletilen tüm diğer dizileri mevcut tuşlara karşılık gelen geçirilen birinci diziden değerleri yakalar.

Yani, örnek şöyle olacaktır:

$a = array(0 => "txt1", 1 => "txt2", 2 => "txt3");
$b = array(0 => 1, 2 => 1);
$c = array_intersect_key($a, $b);
print_r($c);

yazdırır:

Array
(
    [0] => txt1
    [2] => txt3
)

neden basit bir çözüm kullanmayan?

foreach($arr2 as $k=>$v) {
    $a[$k] = $arr1[$k];
}