【发布时间】:2011-04-06 05:12:47
【问题描述】:
我正在尝试使用一个 PHP 函数来比较 2 个数组,如果它们相同则返回 true。
例子:
assertArrayEquals(array('a'=>1, 'b'=>2), array('a'=>1, 'b'=>2)); // True
assertArrayEquals(array('a'=>1, 'b'=>2), array('b'=>2, 'a'=>1)); // True
assertArrayEquals(array('a'=>1, 'b'=>2), array(1, 2)); // false
assertArrayEquals(array(2, 1), array(1, 2)); // false
有什么想法吗?
编辑: 其他测试用例:
assertArrayEquals(array('a'=>1, 'b'=>2), array('a'=>1, 'b'=>2, 'c'=>3)); // false
assertArrayEquals(array('a'=>1, 'b'=>2, 'c'=>3), array('a'=>1, 'b'=>2)); // false
assertArrayEquals(array('a'=>0), array('a'=>'foo')); // false
【问题讨论】:
-
==对你来说不够好吗? -
不,因为 == 只检查值(就像 array_diff 一样)案例 #3 会通过。
-
@FMaz008,案例#3 没有通过
==。我测试过了。 -
那么 4 会通过(因为 array_diff 函数不应该像 array_diff_assoc 那样检查键关联)
-
在做出假设之前请查看手册 (Array Operators):“$a == $b - 相等 - 如果 $a 和 $b 具有相同的键/值,则为 TRUE对.”示例 4 不会通过,因为键/值对不相同:
0 => 2, 1 => 1vs0 => 1, 1 => 2.
标签: php arrays comparison