[英]PHP Compare two multidimensional arrays
我有兩個這樣的多維數組:Guest allow array
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_allow
數組,所有值都出現在第二個數組中,並且我必須檢查guest guest_allow
值是否小於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
)
)
是否可以返回此類型數組? 謝謝。
假設$guestArr
是您的來賓數組,而$secondArr
是您的第二個數組,則解決方案將如下所示:
foreach($secondArr as $key => $arr){
if(!in_array($arr['guest_allow'], $guestArr)){
unset($secondArr[$key]);
}
}
// display $secondArr array
var_dump($secondArr);
這是現場演示 。
$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);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.