[英]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.