[英]Find if two different keys have the same value in 2 arrays PHP
我的 arrays 是:
Array1
(
[0] => Array
(
[id] => 2
[name] => Melamine
[deleted] => 0
)
[1] => Array
(
[id] => 4
[name] => Vinyl
[deleted] => 0
)
[2] => Array
(
[id] => 5
[name] => Polyu
[deleted] => 0
)
)
Array2
(
[0] => Array
(
[productFinish] => 29
[type] => 2
)
[1] => Array
(
[productFinish] => 29
[type] => 4
)
)
所以,如果第一個數組的id
與另一個數組的type
匹配,我想返回第一個數組。 在這種情況下,必須返回第一個數組的前 2 個索引。
謝謝
您可以使用array_uintersect
來獲得您想要的結果,提供一個回調 function 將array1
中的id
值與array2
中的type
值進行比較:
$result = array_uintersect($array1, $array2, function ($a1, $a2) {
return ($a1['id'] ?? $a1['type']) - ($a2['type'] ?? $a2['id']);
});
print_r($result);
請注意,因為回調也僅使用來自$array1
或$array2
的值(用於排序)調用,所以我們必須在比較表達式中允許它。
Output:
Array
(
[0] => Array
(
[id] => 2
[name] => Melamine
[deleted] => 0
)
[1] => Array
(
[id] => 4
[name] => Vinyl
[deleted] => 0
)
)
好的,我用for循環得到了它。
$newTypeFilter = [];
for($i=0; $i < count($arra1); $i++){
for($j=0;$j<count($arra2); $j++){
if($arra1[$i]['id'] == $arra2[$j]['type']){
$newTypeFilter[] = $arra1[$i];
}
}
}
任何其他答案將不勝感激。 謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.