2011-11-29 5 views
0

こんにちはすべてでは珍しいの値を削除し、は、PHPの配列

Array ( 
    [0] => Array ([id] => 242) 
    [1] => Array ([id] => 24) 
    [2] => Array ([id] => 234) 
    [3] => Array ([id] => 244) 
) 


Array ( 
    [0] => 24 
    [1] => 242 
    [2] => 244 
) 

は、私は2つのアレイ上になりました。今、私は2つの配列をフィルタリングし、私の出力が234

答えて

5

私はarray_diffを意味すると思いますが、配列のいずれかに存在する要素のセットを返すような値を得る必要があります。あなたはスーパーセットである配列わからない場合は、しかし、それを2回実行する必要があります

$diff = array_merge(array_diff($a1, $a2), array_diff($a2, $a1)); 

ああをし、最初の配列は、そのようにネストされている場合、$a1 = array_map("current", $a1)か何かで最初の値のリストに変換します。

0

それらで単純にすべての値を持つ2つの配列を作成し、

$arrayResult = $array1; 
foreach($array1 as $id => $val) { 
    if !isset($array2[$id]) { 
     $arrayResult[] = $id; 
    } 
} 
foreach($array2 as $id => $val) { 
    if !isset($array1[$id]) { 
     $arrayResult[] = $id; 
    } 
} 

を行い、その後、$ arrayResultは、すべての珍しいの値を持つことになります!

1

は、AA foreachは、アレイを通過した後、最初の配列内のキーのいずれかが非existantのリストを返します

$array3 = array(); 
foreach ($array1 as $v) 
{ 
    if !(in_array($v['ID'], $array2)) 
    { 
     $array3[] = $v; 
    } 
} 
$array3 = array_unique($array3); 

$array3が存在するかどうかを確認するためにテストを行うためにin_arrayようなものを使用しますかIDの($array2に存在しなかった)