我混淆了array_diff的行为
为什么genre不存在于diff数组?你知道如何解决这个问题吗?
-码
<?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));
Run Code Online (Sandbox Code Playgroud)
-结果
$ php diff.php
Array
(
[contry] => us
)
Run Code Online (Sandbox Code Playgroud)
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().