JSON to PHP Array — JSON を PHP 配列構文に変換
JSON を適切なインデント付きで PHP 配列構文に変換します。連想配列とインデックス配列、PSR-12 フォーマットに対応 — ブラウザで完結、アップロード不要。
JSON to PHP Array
Convert JSON to PHP array syntax. Generates clean PHP array code with proper indentation. Works entirely in your browser.
PHP の配列リテラル構文は、Web 開発で最もコピー&ペーストされる構文の一つです。JSON は本質的に JavaScript のオブジェクトリテラル構文の制約されたサブセットであり、PHP の配列構文はサーバーサイドの世界で最も近い「親戚」です。JSON から PHP 配列への変換は、データ変換というよりも構文翻訳に近いものです。構造は変わらず、型もきれいにマッピングされ(JSON string ↔ PHP string、JSON number ↔ PHP int または float、JSON boolean ↔ PHP bool、JSON null ↔ PHP null)、本当に決めなければならないのは、短い配列構文([...])を使うか、レガシーな array(...) を使うかという点だけです。
多くのコンバータが足をすくわれるのは、PHP における連想配列とインデックス配列の非対称性です。PHP は単一の配列型を持ち、リスト(インデックス、数値キー)としても辞書(連想、文字列キー)としても機能します。JSON には array(順序付き、数値インデックス)と object(順序なし、文字列キー)という 2 つの異なる型があります。コンバータは判断しなければなりません。キーがすべて数値である JSON オブジェクトを連想配列(キーは技術的に文字列であるため)として扱うべきか、それともインデックス配列(キーが 0 から始まる連番であるため)として扱うべきか。本ジェネレータは両方のケースを網羅し、曖昧なキーパターンについてその判断を説明するコメントを出力先頭に出力します。
PHP 配列を生成した後によく行われる次のステップは、それを Laravel や Symfony の設定ファイル、PHPUnit のテストフィクスチャ、またはテストケースの配列を返すデータプロバイダメソッドに組み込むことです。宛先が WordPress のテーマやプラグインであれば、生成された配列は register_post_type、wp_register_script、あるいは連想配列を受け取る WordPress の多数の登録関数の options 配列としてそのまま機能します。PHP 配列は PHP エコシステム共通の「設定言語」であり、生成された出力はすべてにそのまま貼り付けて使えます。
使い方
JSON を貼り付ける
JSON オブジェクトをドロップするか、JSON 文字列を貼り付けます。コンバータが自動的にネスト深度を検出し、同じ構造を持つインデント付き PHP 配列を出力します。
配列スタイルを選択
短い配列構文(`[...]`、PSR-12 標準)とレガシーコードベース向けの古い `array(...)` 形式を切り替えます。短い構文がデフォルトです。
.php スニペットをコピーまたはダウンロード
PHP 配列をクリップボードにコピーするか、.php ファイルとしてダウンロードします。出力は任意の PHP 設定、ルーター、テストフィクスチャにそのまま貼り付け可能で、追加の関数は必要ありません。
よくある質問
連想配列とインデックス配列をどう区別しますか?
JSON オブジェクトは文字列キーを持つ PHP 連想配列になります。数値キー(0、1、2...)を持つ JSON 配列は、暗黙の数値キーによるインデックス配列になります。すべてのキーが数値である JSON オブジェクトは、キーが文字列であるため連想配列として扱われます。インデックス配列が必要な場合は手動で変換してください。
JSON の null 値は保持されますか?
はい。JSON の `null` は PHP の `null` になります。空の JSON オブジェクトは `[]` に、空の JSON 文字列は `''` になります。`json_encode` 経由のラウンドトリップは標準的な JSON 型に対してロスレスです。
深くネストされた JSON ファイルも処理できますか?
はい。インデントはレベルごとに 4 スペース(PSR-12 標準)増加し、ブラウザのメモリ以外に深度制限はありません。深くネストされた JSON は深くインデントされた PHP を生成しますが、これは想定どおりの動作です。
出力は Laravel の設定ファイルに直接使えますか?
はい。Laravel の設定ファイルは PHP 配列を返します。生成された配列を設定ファイルの返り値として貼り付け、先頭に `<?php return ...;` を追加してください。インデントは Laravel 自身の設定スタイルと一致します。
重複キーを持つ JSON はどう扱われますか?
JSON は仕様上重複キーを禁止していますが、一部の API はそれでも出力します。コンバータは各キーに対して最後の値を保持します — これは連想配列モードでの PHP の `json_decode` と同じ挙動です。重複キーの可能性がある場合は出力を確認してください。
制限事項
- TrailingComma オプションなし出力はすべての要素の後にトレイリングカンマを使用します(PHP 7.3+ スタイル)。PHP 7.2 以前を対象とする場合は、トレイリングカンマを手動で削除してください。
- 文字列キーのクォートは常にシングルクォート文字列キーはシングルクォートで囲まれた PHP 文字列として出力されます。キーにシングルクォートが含まれている場合、エスケープされません。PSR-12 は補間されない文字列に対してシングルクォートキーを推奨しています。キー内のマルチバイト文字はそのまま出力されます。
- 文字列補間には非対応出力は静的な配列リテラルです。実行時に計算される値が必要な場合は、生成後にリテラル値を手動で関数呼び出しまたは変数参照に置き換えてください。
プラットフォーム別の注意点
- macOS
- PHPStorm、Intelephense 入り VS Code、Sublime Text はいずれも生成された配列をそのまま受け入れます。サンプル API レスポンスをテストフィクスチャにワンショットで変換する場合は、ブラウザツールが適しています。
- Windows
- XAMPP、WAMP、Laragon のいずれの環境でも生成された配列は同じように扱えます。チャットやメールから受け取った JSON スニペットを PHP 設定配列に変換したい場合は、ブラウザツールが適切な選択肢です。
- Linux
- コマンドライン作業の場合、`php -r 'var_export(json_decode(file_get_contents("f.json"), true));'` が CLI での等価手段です。PHP ランタイムが利用できない一時的な変換には、ブラウザツールが向いています。
- Web
- 完全にクライアントサイドで動作します。オフラインでも利用可能です。変換はミリ秒で完了します。