php使用array_diff_assoc,怎么返回正确的差集

wlm212
  • 48

`

$fruit1 = array(['username'=>'wlm1','order_id'=>1],['username'=>'wlm2','order_id'=>2],['username'=>'wlm3','order_id'=>3],['username'=>'wlm4','order_id'=>4]);
$fruit2 = array(['username'=>'wlm1','order_id'=>1],['username'=>'wlm3','order_id'=>3]);
$intersection = array_diff_assoc($fruit1, $fruit2);
print_r($intersection);

`

Array
(
    [2] => Array
        (
            [username] => wlm3
            [order_id] => 3
        )

    [3] => Array
        (
            [username] => wlm4
            [order_id] => 4
        )

)

这种返回,好像不对。
我想要的是这样的,怎么弄呢

Array
(
    [2] => Array
        (
            [username] => wlm2
            [order_id] => 2
        )

    [3] => Array
        (
            [username] => wlm4
            [order_id] => 4
        )

)
回复
阅读 289
1 个回答

array_diff_assoc

array_diff_assoc() 返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意和 array_diff() 不同的是键名也用于比较。

你可以把值序列化一下然后使用array_diff()

你知道吗?

宣传栏