這是一個很簡單的問題,但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