首页 > 解决方案 > 如何检查值一个数组元素是否完全存在于另一个数组中并在php中创建新数组作为不同数组值的容器

问题描述

从两个数组中,我想检查它是否具有相同的值,然后它将创建一个新数组作为不同的数组容器,这是我的数组
$array1

"[
    {
        "inveninfoid": "298",
        "product_no": "SKU999212"
    },
    {
        "inveninfoid": "297",
        "product_no": "SKU999211"
    },
    {
        "inveninfoid": "296",
        "product_no": "SKU999210"
    },
    {
        "inveninfoid": "307",
        "product_no": "SKU999213"
    },
    {
        "inveninfoid": "308",
        "product_no": "SKU999214"
    },
    {
        "inveninfoid": "309",
        "product_no": "SKU999215"
    }
]"

$array2

"[
    {
        "inveninfoid": "298",
        "product_no": "SKU999212",
    },
    {
        "inveninfoid": "297",
        "product_no": "SKU999211",
    },
    {
        "inveninfoid": "296",
        "product_no": "SKU999210",
    },
    {
        "inveninfoid": "307",
        "product_no": "SKU999213",
    }
]"


那么我期望的结果是像这样形成一个新的数组 $array3 。
$array3

"[
    {
        "inveninfoid": "308",
        "product_no": "SKU999214"
    },
    {
        "inveninfoid": "309",
        "product_no": "SKU999215"
    }
]"

标签: phparrays

解决方案


array_diff_assoc() : 通过附加索引检查计算数组的差异

您可以转换JSON为数组并使用array_diff_assoc

$jArr1 = json_decode($j1, true);
$jArr2 = json_decode($j2, true);
$diff  = array_diff_assoc($jArr1, $jArr2);

推荐阅读