首页 > 解决方案 > 我应该如何从 php 中的两个二维数组中获取缺失值

问题描述

我有两个数组

$a1 = Array
            (
            [0] => Array
                (
                [value] => 70,
                [unit] => kilogram(kg),
                [status] => active
            ),
            [1] => Array
                (
                [value] => 80,
                [unit] => kilogram(kg),
                [status] => inactive
            ),
            [2] => Array
                (
                [value] => 67,
                [unit] => gram(g),
                [status] => active
            ),
            [3] => Array
                (
                [value] => 54,
                [unit] => gram(g),
                [status] => inactive
            )
        );

第二个数组是:

$a2 = Array
        (
        [0] => Array
            (
            [value] => 70,
            [unit] => kilogram(kg),
            [status] => active
        ),
        [1] => Array
            (
            [value] => 80,
            [unit] => kilogram(kg),
            [status] => inactive
        ),
        [2] => Array
            (
            [value] => 67,
            [unit] => gram(g),
            [status] => active
        ),
        [3] => Array
            (
            [value] => 54,
            [unit] => gram(g),
            [status] => inactive
        ),
        [4] => Array
            (
            [value] => 50,
            [unit] => kilogram(kg),
            [status] => active
        )
    );

我想要的是得到两个数组之间的区别。即数组中的缺失值。

我使用了array_diff,但它返回错误:

array_diff 行上的数组到字符串转换

任何人都有任何解决方案。

标签: phplaravel

解决方案


function key_compare_func($key1, $key2)
{
    if ($key1 == $key2)
        return 0;
    else if ($key1 > $key2)
        return 1;
    else
        return -1;
}
$aDiff = array_diff_ukey($a1, $a2, 'key_compare_func');

https://www.php.net/manual/en/function.array-diff-ukey.php


推荐阅读