簡體   English   中英

PHP比較兩個多維數組

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM