Почему json_encode() показывает ключи после фильтрации с помощью array_diff()? [дубликат] ⇐ Php

Кемеровские программисты php общаются здесь
Anonymous
Почему json_encode() показывает ключи после фильтрации с помощью array_diff()? [дубликат]

Сообщение Anonymous »

В документации PHP четко указано


Сравнивает массив1 с одним или несколькими другими массивами и возвращает значения в array1, которых нет ни в одном из других массивов.


Похоже, это не совсем так. Возьмем следующий пример

Код: Выделить всё

$a = array(1,2,3,4);
$b = array(3,4,5);
echo "b FROM a = ";
echo json_encode(array_diff($a,$b));
echo "
a FROM b = ";
echo json_encode(array_diff($b,$a));
который возвращает

Код: Выделить всё

b FROM a = [1,2]
a FROM b = {"2":5}
т.е. простой массив в одном случае и ассоциативный массив в другом. Легко исправить — меня волнуют только значения, поэтому я могу просто выполнить array_values(array_diff. Однако меня беспокоит, что в документации эта разница замалчивается. Возможно, кто-то здесь может пролить больше света на то, что происходит?< /п>

Подробнее здесь: https://stackoverflow.com/questions/392 ... array-diff

Вернуться в «Php»