TheExplay
@TheExplay
Верстальщик - Junior FrontEnd

Почему удаляются пустые элементы массива?

Всем привет, есть такой вот php скрипт
joxi.ru/MAjpqq7FvjEMOm

Передаю в функцию переменную $schedule, которая содержит в себе:
joxi.ru/YmENMM1sZweQO2
joxi.ru/4AkGqq0sMob6nA

На выходе получаю такой вот json:
joxi.ru/J2b3qqNC40BpZA

Хотя ожидал получить в виде:
joxi.ru/brRYZZEuQ7MeMA

Собственно вопрос, почему удаляются пустые элементы массива, и почему вместо текста символы?
  • Вопрос задан
  • 198 просмотров
Решения вопроса 1
MaxAlexQNEI
@MaxAlexQNEI
Web-Developer
Так и должно быть. Если в массиве подаваемом в json_encode есть недопустимые символы вроде кириллицы - json_encode преобразует их в UTF-8.

Для json_encode вторым аргументов можно задать параметр JSON_UNESCAPED_UNICODE - перестаёт кодировать многобайтные символы Unicode.

json_encode( $array, JSON_UNESCAPED_UNICODE ); // От PHP 5.4.0


По личной практике скажу - на некоторых проектах (с которыми я работал), весь проект использовал CP1251 (Windows-1251), из за этого json_encode() может работать не корректно и тем более с параметром JSON_UNESCAPED_UNICODE
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы