array_diff问题

问题描述:

我很困惑array_diff行为array_diff问题

为什么流派不存在于差异数组? 你知道如何解决这个问题吗?

-code

<?php 
$array1 = array 
(
    'value01' => '0', 
    'value02' => 'v2', 
    'genre' => '1', 
    'type' => 'text', 
    'contry' => 'us', 
    'data' => '1', 
); 
$array2 = array 
(
    'value01' => 'v1', 
    'value02' => 'v2', 
    'genre' => '0', 
    'type' => 'text', 
    'contry' => 'canada', 
    'data' => '1', 
); 

print_r(array_diff($array1,$array2)); 

-result

$ php diff.php 
Array 
(
    [contry] => us 
) 

我相信你想使用array_diff_assoc

http://www.php.net/manual/en/function.array-diff-assoc.php

array_diff工作该数组,并忽略这些键。

因为genre您的第一阵列中的值是1,这意味着,如果该值1用于第二阵列中的任何键发生,则genre密钥将被从所述第一数组中删除。

看看你的阵列没有钥匙,你会明白我的意思。你基本上有两个值列表,['0','v2','1','text','us','1']['v1','v2','0','text','canada','1']。第一个列表中唯一没有出现在第二个列表中的值是'us'

我猜你可能会想看看array_key_diff()array_diff_assoc()