这是一个如此简单的问题,但 PHP 文档没有解释它为什么会发生。
我有这个代码:
var_dump($newattributes); var_dump($oldattributes);
var_dump(array_diff($newattributes, $oldattributes));
为简单起见,我将省略我实际使用的大部分结构(因为每个结构都有 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
是:
array(0) { }
我已经阅读了文档页面,但是它说:
当且仅当 (string) $elem1 === (string) $elem2 时,才认为两个元素相等。换句话说:当字符串表示相同时。
而且我不确定“1”如何反对等于“0”。
那么我是否看到了一些array_diff
我没有考虑到的警告?