返回多维数组的差异

时间:2016-07-10 04:05:04

标签: php codeigniter

如何比较这两个阵列?
我希望结果是一个数组中不可用的元素。例如:

数组#1

Array
(
[0] => Array
    (
        [0] => a
        [1] => 1
    )

[1] => Array
    (
        [0] => b
        [1] => 2
    )

[2] => Array
    (
        [0] => c
        [1] => 3
    )
)

数组#2

Array
(
    [0] => Array
        (
            [0] => a
            [1] => 1
        )

    [1] => Array
        (
            [0] => b
            [1] => 2
        )
)

结果

Array
(
    [0] => Array
        (
            [0] => c
            [1] => 3
        )
)

1 个答案:

答案 0 :(得分:0)

集合理论中,这是调用对称差异

首先,您需要删除任何可能的重复项,然后获取两个数组的个体差异并合并这两个个体差异。

$a = array('John', 'Bob', 'Mary', 'Serena');
$b = array('Jim', 'Mary', 'John', 'Bob');

// Remove any duplicates
$a = array_unique($a);
$b = array_unique($b);

// Get the individual differences, using array_diff()
$a_minus_b = array_diff($a, $b);
$b_minus_a = array_diff($b, $a);

// Simply merge them together to get the symmetric difference
$symmetric_difference = array_merge($a_minus_b, $b_minus_a); // produces ['Serena', 'Jim']

如果需要,您可能需要对2D数组进行必要的更改。

我希望这有帮助。