JSON в массив PHP
Вставьте документ JSON и получите литерал массива PHP, отформатированный для исходного файла .php: краткий синтаксис массивов ([...]), правильные отступы, корректно заключённые в кавычки строки, вложенные объекты становятся ассоциативными массивами, а массивы остаются индексированными. Удобно для встраивания фикстур API в тесты или для заполнения конфигурационных файлов.
Как преобразовать JSON в PHP
-
1
Вставьте JSON
Любой корректный JSON: объекты, массивы, глубоко вложенные структуры.
-
2
Выберите синтаксис
Краткий `[...]` (PHP 5.4+) или длинный `array(...)` (сейчас нужен редко).
-
3
Выберите кавычки для строк
Одинарные кавычки (без интерполяции, апострофы экранируются) или двойные кавычки (допускают интерполяцию `$`: обычно не то, что нужно для данных).
-
4
Скопируйте массив
Вставьте в файл `.php`, присвойте `return` или оберните в `config([...])`.
Пример
Ввод:
{ "app": { "name": "Hyperion", "debug": true, "hosts": ["h1.example.com", "h2.example.com"] } }
Результат (краткий синтаксис, одинарные кавычки):
[
'app' => [
'name' => 'Hyperion',
'debug' => true,
'hosts' => [
'h1.example.com',
'h2.example.com',
],
],
]
Сопоставление типов
| JSON | PHP |
|---|---|
| строка | строка (в одинарных кавычках) |
| целое число | int |
| число (дробное) | float |
| логическое значение | true / false |
| null | null |
| массив (JSON) | индексированный массив |
| объект (JSON) | ассоциативный массив |
Когда использовать ассоциативный, а когда индексированный массив
В PHP есть единственный тип массива с обоими поведениями. JSON же чётко различает объект и массив, поэтому сопоставление такое:
{}→ ассоциативный массив (['key' => value]).[]→ индексированный массив ([value, value]).
Генератор всегда сохраняет это различие; смешивать их в PHP допустимо, но это запутывает.
Особенности PHP, о которых стоит помнить
- Числовые строковые ключи. PHP приводит
"42"к целочисленному ключу42в массиве. Если в вашем JSON числовые строки используются как ключи и вам нужно сохранить их строками, обход черезarray_combineих не сохранит. - Большие целые числа. JSON может содержать целые числа больше
PHP_INT_MAXна 32-битных сборках. Генератор предупреждает, когда это возможно. - UTF-8. Строки PHP, это последовательности байтов; генератор выводит UTF-8 буквально. Убедитесь, что файл
.phpсохранён в UTF-8 без BOM.
Сценарии использования
- Файлы конфигурации. И Laravel, и Symfony используют конфигурацию в виде массивов PHP. Перенос конфигурации из JSON в стиле вендора работает хорошо.
- Тестовые фикстуры. Фикстуры
PHPUnitв виде массивов чище, чем файлы JSON, загружаемые во время выполнения. - Сидеры. Сидеры базы данных в Laravel часто начинаются как дамп JSON и превращаются в массивы PHP.
Распространённые ошибки
- Обратное преобразование массивов PHP в JSON.
json_encodeтрактует ассоциативный массив как объект, а индексированный, как массив. Если их смешать (['key' => 'val', 0 => 'x']), на выходе получится объект. Держите массивы JSON-образной формы в форме JSON. - Двойные кавычки с апострофами. Строки PHP в одинарных кавычках требуют экранирования
\'; строки в двойных кавычках требуют экранирования\\", и переменные могут случайно интерполироваться, если не быть внимательным. Для данных используйте одинарные кавычки. - Забытые завершающие запятые. PHP допускает их с версии 7.3, и они делают диффы чище. Генератор добавляет их по умолчанию.
Часто задаваемые вопросы
Краткий синтаксис ([...]) доступен с PHP 5.4 и является идиоматичным выбором для всего современного кода. Длинный синтаксис (array(...)) нужен только для кода, который должен работать на PHP 5.3 или более ранних версиях, по сути, для устаревших систем.
Да. Файлы конфигурации Laravel, это обычные массивы PHP, возвращаемые из файла. Вставьте вывод генератора после return и сохраните его в каталоге config/.
Строки PHP в одинарных кавычках не интерполируют переменные и escape-последовательности (кроме \' и \\). Для литералов данных это быстрее и безопаснее. Двойные кавычки нужны только тогда, когда внутри строки требуется \n, \t или $variable.
Нет, он выводит литерал массива. При необходимости оберните его сами в return, const или свойство класса. Компактный вывод остаётся легко компонуемым.
Сопутствующие инструменты
Справочная таблица ASCII
Полная таблица ASCII от 0 до 127 с десятичным, шестнадцатеричным, восьмеричным и двоичным представлением, а также записью числовых ссылок HTML, включая NUL, LF и DEL.
Справочник сочетаний клавиш
Ищите документированные сочетания по умолчанию для VS Code, Chrome и Bash с GNU Readline в macOS, Windows и Linux.
Справочник символов HTML
Справочник HTML-сущностей с поиском, их именованными и числовыми кодами, а также копированием специальных символов и знаков одним кликом.
Шпаргалка по Markdown
Практический справочник Markdown с настоящим предпросмотром и готовыми для копирования примерами заголовков, списков, таблиц, кода, ссылок, изображений и синтаксиса GFM.
Счетчик FPS
Измерьте FPS браузера через requestAnimationFrame: сглаживание, минимальная и максимальная частота кадров, порог предупреждения и график по желанию. Работает локально, без загрузок и API.
Шпаргалка по регулярным выражениям
Поисковый справочник регулярных выражений для JavaScript, PCRE2/PHP, Python re и .NET. Сравнивайте токены, синтаксис движков, якоря, группы, проверки и флаги.
Инструмент доступен на других языках
- JSON vers tableau PHP [FR]
- JSON till PHP-array [SV]
- JSON เป็น PHP Array [TH]
- تحويل JSON إلى مصفوفة PHP [AR]
- JSON ke Array PHP [ID]
- JSON sang mảng PHP [VI]
- JSON을 PHP 배열로 변환 [KO]
- JSON zu PHP-Array [DE]
- JSON a Array de PHP [ES]
- JSON naar PHP-array [NL]
- JSON do tablicy PHP [PL]
- JSONからPHP配列へ [JA]
- JSON para Array PHP [PT]
- JSON'dan PHP dizisine [TR]
- 从 JSON 到 PHP 数组 [ZH]
- JSON to PHP Array [EN]
- JSON in array PHP [IT]