如何使用PHP基于数组索引过滤关联数组


How to filter Associate Array based on Array index using PHP

我需要比较两个关联数组。但这两个数组都有不同数量的索引键。

第一个数组是exclude数组,第二个数组有用户id列表。我需要实现的是,我只需要返回不在数组1中的具有user_id的项。我使用了array_diff_assoc(),但返回了错误的数组。

阵列1:

Array
(
    [0] => Array
        (
            [a] => Array
                (
                    [user_id] => 10080
                )
        )
    [1] => Array
        (
            [a] => Array
                (
                    [user_id] => 10074
                )
        )
)

阵列2:

Array
(
    [0] => Array
        (
            [a] => Array
                (
                    [mail_id] => 14
                    [user_id] => 10080
                    [error_status] => 0
                    [recipient_type] => I
                )
        )
    [1] => Array
        (
            [a] => Array
                (
                    [mail_id] => 14
                    [user_id] => 10059
                    [error_status] => 0
                    [recipient_type] => I
                )
        )
)

$result=array_diff_assoc($arr1,$arr2);

结果:

Array
(
    [0] => Array
        (
            [a] => Array
                (
                    [user_id] => 10080
                )
        )
)

您可以使用我在这里找到的这个函数,并使用array_udiff为您进行了修改。

function udiffCompare($a, $b)
{
    return $a['a']['user_id'] - $b['a']['user_id'];
}
$arrdiff = array_udiff($array2, $array1, 'udiffCompare');
print_r($arrdiff);