我有两个这样的多维数组: Guest允许数组
Array
(
[0] => 5
[1] => 2
[2] => 3
)
和第二个像这样
Array
(
[0] => Array
(
[property_id] => 6
[guest_allow] => 2
)
[1] => Array
(
[property_id] => 9
[guest_allow] => 3
)
[2] => Array
(
[property_id] => 62
[guest_allow] => 2
)
[3] => Array
(
[property_id] => 72
[guest_allow] => 3
)
[4] => Array
(
[property_id] => 76
[guest_allow] => 4
)
[5] => Array
(
[property_id] => 80
[guest_allow] => 5
)
[6] => Array
(
[property_id] => 84
[guest_allow] => 3
)
)
所以我必须匹配guest数组,所有值都存在于第二个数组中,并且我必须检查guest虚拟机值小于guest_allow
的第二个数组。如果没有匹配单值返回空数组。如果匹配值,则返回仅匹配值。我想要这样的返回数组:
Array
(
[0] => Array
(
[property_id] => 6
[guest_allow] => 2
)
[1] => Array
(
[property_id] => 9
[guest_allow] => 3
)
[2] => Array
(
[property_id] => 62
[guest_allow] => 2
)
[3] => Array
(
[property_id] => 72
[guest_allow] => 3
)
[4] => Array
(
[property_id] => 84
[guest_allow] => 3
)
[5] => Array
(
[property_id] => 76
[guest_allow] => 4
)
)
是否可以返回此类型数组?感谢。
答案 0 :(得分:2)
假设$guestArr
是您的来宾数组而$secondArr
是您的第二个数组,解决方案将是这样的:
foreach($secondArr as $key => $arr){
if(!in_array($arr['guest_allow'], $guestArr)){
unset($secondArr[$key]);
}
}
// display $secondArr array
var_dump($secondArr);
这里是live demo。
答案 1 :(得分:0)
$first = [1, 2, 3];
$second = [
['property_id' => 6, 'guest_allow' => 2],
['property_id' => 66, 'guest_allow' => 3],
['property_id' => 76, 'guest_allow' => 4],
['property_id' => 86, 'guest_allow' => 2]
];
$result = array_filter($second, function($el) use ($first) {
return in_array($el['guest_allow'], $first);
});