JSON zu PHP-Array
Füge ein JSON-Dokument ein und erhalte ein PHP-Array-Literal, das für eine .php-Quelldatei formatiert ist, Kurzarraysyntax ([...]), richtige Einrückung, Strings korrekt in Anführungszeichen gesetzt, verschachtelte Objekte werden zu assoziativen Arrays und Arrays bleiben indiziert. Nützlich zum Einbetten von API-Fixtures in Tests oder zum Befüllen von Konfigurationsdateien.
Wie man JSON in PHP konvertiert
-
1
Füge das JSON ein
Jedes gültige JSON, Objekte, Arrays, tief verschachtelt.
-
2
Wähle die Syntax
Kurze `[...]` (PHP 5.4+) oder lange `array(...)` (jetzt selten benötigt).
-
3
Wähle die Anführungszeichen für Strings
Einzelne Anführungszeichen (keine Interpolation, Apostrophe escapen) oder doppelte Anführungszeichen (erlaubt `$`-Interpolation, normalerweise nicht gewünscht für Daten).
-
4
Kopiere das Array
Füge es in deine `.php`-Datei ein, weise es `return` zu oder wickle es in `config([...])` ein.
Beispiel
Eingabe:
{ "app": { "name": "Hyperion", "debug": true, "hosts": ["h1.example.com", "h2.example.com"] } }
Ausgabe (Kurzsyntax, einfache Anführungszeichen):
[
'app' => [
'name' => 'Hyperion',
'debug' => true,
'hosts' => [
'h1.example.com',
'h2.example.com',
],
],
]
Typzuordnung
| JSON | PHP |
|---|---|
| String | String (einfache Anführungszeichen) |
| Ganzzahl | int |
| Zahl (Dezimal) | float |
| boolescher Wert | true / false |
| null | null |
| Array (JSON) | indiziertes Array |
| Objekt (JSON) | assoziatives Array |
Wann assoziativ vs. indiziert verwenden
PHP hat einen Array-Typ mit beiden Verhaltensweisen. JSON unterscheidet klar zwischen Objekt und Array, daher ist die Zuordnung:
{}-> assoziativ (['key' => value]).[]-> indiziert ([value, value]).
Der Generator bewahrt immer die Unterscheidung; das Mischen der beiden in PHP ist legal, aber verwirrend.
PHP-spezifische Fallstricke
- Numerische String-Schlüssel. PHP wandelt
"42"in den ganzzahligen Schlüssel42in einem Array um. Wenn dein JSON numerische Strings als Schlüssel verwendet und du sie als Strings benötigst, wird diearray_combine-Rundreise sie nicht bewahren. - Große Ganzzahlen. JSON kann Ganzzahlen größer als
PHP_INT_MAXauf 32-Bit-Bauten halten. Der Generator warnt, wenn das passieren könnte. - UTF-8. PHP-Strings sind Byte-Sequenzen; der Generator gibt UTF-8 wörtlich aus. Stelle sicher, dass deine
.php-Datei als UTF-8 ohne BOM gespeichert ist.
Anwendungsfälle
- Konfigurationsdateien: Laravel und Symfony verwenden beide PHP-Array-Konfigurationen. Das Einfügen einer JSON-Konfiguration im Vendor-Stil funktioniert gut.
- Test-Fixtures:
PHPUnit-Fixtures sind als Arrays sauberer als als JSON-Dateien, die zur Laufzeit geladen werden. - Seeds: Datenbank-Seeder in Laravel beginnen oft als JSON-Dump und werden zu PHP-Arrays.
Häufige Fehler
- Rundreise von PHP-Arrays zurück zu JSON.
json_encodebehandelt ein assoziatives Array als Objekt und ein indiziertes Array als Array. Wenn du sie mischst (['key' => 'val', 0 => 'x']), erhältst du ein Objekt beim Ausgeben. Halte JSON-förmige Arrays JSON-förmig. - Doppelte Anführungszeichen mit Apostrophen. Einzelne Anführungszeichen in PHP-Strings müssen
\\'escapen; doppelte Anführungszeichen benötigen\\"und Variablen werden versehentlich interpoliert, wenn du nicht aufpasst. Halte dich für Daten an einfache Anführungszeichen. - Vergessen von nachgestellten Kommas. PHP erlaubt sie seit PHP 7.3 und sie machen Diffs sauberer. Der Generator fügt sie standardmäßig hinzu.
Häufig gestellte Fragen
Die kurze Syntax ([...]) ist seit PHP 5.4 verfügbar und die idiomatische Wahl für modernen Code. Die lange Syntax (array(...)) wird nur für Code benötigt, der auf PHP 5.3 oder früher laufen muss, im Wesentlichen für Altsysteme.
Ja. Laravel-Konfigurationsdateien sind einfache PHP-Arrays, die aus einer Datei zurückgegeben werden. Füge die Ausgabe des Generators nach return ein und speichere sie in config/.
Einzelne Anführungszeichen in PHP-Strings interpolieren keine Variablen oder Escape-Sequenzen (außer \' und \\). Für Datenliterale ist dies schneller und sicherer. Doppelte Anführungszeichen sind nur wichtig, wenn du \n, \t oder $variable innerhalb des Strings möchtest.
Nein, es gibt ein Array-Literal aus. Wickele es selbst mit return, const oder einer Klassen-Eigenschaft ein, wie benötigt. Die Ausgabe klein zu halten, macht sie komponierbar.
Verwandte Tools
ASCII-Tabelle Referenz
Vollständige ASCII-Tabelle von 0 bis 127 mit Dezimal-, Hex-, Oktal-, Binär- und numerischer HTML-Zeichenreferenz für jedes Zeichen, einschließlich Steuerzeichen wie NUL, LF und DEL.
HTML-Zeichenreferenz
Durchsuchbare Liste von HTML-Entitäten, ihren benannten und numerischen Codes sowie eine Ein-Klick-Kopie für Sonderzeichen und Symbole.
Farbrad-Explorer
Erforschen Sie das Farbrad interaktiv. Rotieren Sie Harmonien, vergleichen Sie HSL mit RYB, erkennen Sie komplementäre und triadische Paare in Echtzeit.
Referenz für Tastenkombinationen
Durchsuchen Sie dokumentierte Standardkürzel für VS Code, Chrome und Bash mit GNU Readline unter macOS, Windows und Linux.
Zufallsbuchstaben-Generator
Erzeugen Sie zufällige A-Z-Buchstaben. Wählen Sie Anzahl, Großschreibung, Kleinschreibung oder gemischte Schreibweise für Spiele, Aufgaben und Unterricht.
HTML-Formatter
Formatieren Sie HTML lokal im Browser mit zwei oder vier Leerzeichen Einrückung. HTML wird weder hochgeladen noch validiert.
Tool in anderen Sprachen verfügbar
- JSON ke Array PHP [ID]
- JSON sang mảng PHP [VI]
- JSON a Array de PHP [ES]
- JSON vers tableau PHP [FR]
- JSON을 PHP 배열로 변환 [KO]
- JSON naar PHP-array [NL]
- JSON till PHP-array [SV]
- JSONからPHP配列へ [JA]
- JSON เป็น PHP Array [TH]
- تحويل JSON إلى مصفوفة PHP [AR]
- JSON do tablicy PHP [PL]
- JSON para Array PHP [PT]
- JSON in array PHP [IT]
- JSON в массив PHP [RU]
- JSON'dan PHP dizisine [TR]
- 从 JSON 到 PHP 数组 [ZH]
- JSON to PHP Array [EN]