【发布时间】:2015-03-18 09:18:29
【问题描述】:
比较数组时The Documentation 说
$a == $b 相等 如果 $a 和 $b 具有相同的键/值对,则为 TRUE。
虽然与多维数组相比,情况似乎并非如此
$a = array(
array("test"),
array("testing"),
);
$b = array(
array("testing"),
array("test"),
);
var_dump($a);
var_dump($b);
var_dump($a == $b);
返回
array(2) {
[0] =>
array(1) {
[0] =>
string(4) "test"
}
[1] =>
array(1) {
[0] =>
string(7) "testing"
}
}
array(2) {
[0] =>
array(1) {
[0] =>
string(7) "testing"
}
[1] =>
array(1) {
[0] =>
string(4) "test"
}
}
bool(false)
相同的数组,不同的顺序。数组差异虽然返回正确。
这是预期的功能吗?我知道我可以与 array_diff($a,b) + array($b, $a) 进行比较。我不确定为什么 == 不起作用
【问题讨论】:
-
因为整数键。您的数组基本上是
array( 0 => array("test"), 1 => array("testing"))和array( 0 => array("testing"), 1 => array("test") );- 它们不一样。 -
Argh 完全忽略了这一点,如果你做出这样的回答将无法接受
标签: php multidimensional-array