Это такая простая проблема, но в документе 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) { }
Я прочитал страницу документации, однако он говорит:
Два элемента считаются равными тогда и только тогда, когда (строка) $elem1 === (строка) $elem2. В словах: когда строковое представление одно и то же.
И я не уверен, как "1" может объектировать равный "0".
Как я вижу некоторые оговорки с array_diff
, я не принимал во внимание?