和array_diff()不工作
问题描述:
$intersect = array_diff($array1,$array2);
print_r($intersect);
我有两个阵列和我以前和array_diff和array_diff()不工作
$array1 =Array ([0] => Fees 1 [1] => Fees 2 [2] => Fees 24 [3] => Fees 99)
$array2 = Array ([0] => Fees 1 [1] => Fees 24 [2] => Fees 2)
,并用于:
array_diff($array1,$array2);
我需要的ANS:
Array ([0] => Fees 99)
但我得到了:
Array ([1] => Fees 2 [3] => Fees 99)
答
由于空格,您的代码可能不工作。因此,为了摆脱这些空间,我使用array_map()
加上trim()
来删除这些空格。
也在端我用array_values()
重新索引阵列从0开始
print_r(array_values(array_diff(array_map("trim", $array1), array_map("trim", $array2))));
输出:
Array ([0] => Fees 99)
还可看到差和间隔的不同大写金额使用var_dump()
喜欢这张:
var_dump($array1);
var_dump($array2);
然后你应该能够看到th e差异(输出示例):
array(4) {
[0]=>
string(7) "Fees 1 "
[1]=>
string(8) " Fees 2 "
//^ See here
[2]=>
string(8) "Fees 24 "
[3]=>
string(8) "Fees 99 "
}
array(3) {
[0]=>
string(7) "Fees 1 "
[1]=>
string(8) "Fees 24 "
[2]=>
string(7) "Fees 2 "
//^ See here
}
适合我!请向我们展示您的** full **和真实代码 – Rizier123 2015-02-09 05:41:47
在'$ array1'&'$ array2'上执行'var_dump()'以检查'费用2'是否相同,可能是空格问题。 – Sean 2015-02-09 05:43:26
是的@Sean说这可能是一个空白问题 – Sky 2015-02-09 05:45:04