Iki birleştirici dizileri karşılaştırmak ve eşleşen dizileri ile yeni bir dizi, PHP oluşturmak

2 Cevap php

Ben bu iki dizi var:

$arr1=array(  array("id" => 8, "name" => "test1"),  
              array("id" => 4, "name" => "test2"),  
              array("id" => 3, "name" => "test3")  
           );

$arr2=array(  array("id" => 3),
              array("id" => 4) 
           );

Nasıl yeni bir diziye, id $ dizi2 aynı değere sahip $ dizi1, diziler "özü" ve hesap kilit emir içine almadan, yeni bir diziye de ekstre dizi bıraktın?

I arıyorum çıkışı olmalıdır:

$arr3=array(
              array("id" => 8, "name" => "test1")
           );

$arr4=array(  array("id" => 4, "name" => "test2"),  
              array("id" => 3, "name" => "test3")  
           );

Teşekkürler

2 Cevap

Ben orada bu halledebilirim hazır yapılmış bazı sihirli dizi işlevleri var, ama burada temel bir örnek eminim:

$ids = array();
foreach($arr2 as $arr) {
    $ids[] = $arr['id'];
}

$arr3 = $arr4 = array();
foreach($arr1 as $arr) {
    if(in_array($arr['id'], $ids)) {
        $arr4[] = $arr;
    } else {
        $arr3[] = $arr;
    }
}

Çıktı istenilen biri olarak aynı olacaktır. Canlı bir örnek:

http://codepad.org/c4hOdnIa