这是一个很简单的问题,但PHP文档并没有解释它为什么会发生。PHP array_diff奇怪
我有这样的代码:
var_dump($newattributes); var_dump($oldattributes);
var_dump(array_diff($newattributes, $oldattributes));
对于briefity我将省略我实际使用(因为每个是117个元件长)并切割成的情况下的结构的大部分地区。
我已经一个阵列称为$newattributes
它看起来像:
array(117){
// Lots of other attributes here
["deleted"] => int(1)
}
而另一个名为$oldattributes
它看起来像:
array(117){
// Lots of other attributes here
["deleted"] => string(1) "0"
}
它看起来不同吧?根据array_diff
:没有。我从array_diff
得到的输出是:
我已阅读文档页面但是它说:
两个因素被认为是平等的,当且仅当(字符串)$ elem1 === (字符串)$ elem2。用词表示:当字符串表示是相同的。
而我不知道“1”如何反对等于“0”。
所以我看到一些警告array_diff
我没有考虑到?
好问题清楚,问得好,不要太长,代码太多。更多的人应该这样做! +1 – Hidde 2012-08-17 10:41:34
这不应该发生,事实上[它不适合我](http://ideone.com/jDeUd)。 – Jon 2012-08-17 10:42:51
@Jon感谢您的测试,我会更多地关注我的PHP构建 – Sammaye 2012-08-17 10:47:37