ホームページ >バックエンド開発 >PHPチュートリアル >「json_encode」を使用して PHP 配列を JSON 配列に変換するにはどうすればよいですか?

「json_encode」を使用して PHP 配列を JSON 配列に変換するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-03 13:12:12605ブラウズ

How Do I Convert a PHP Array to a JSON Array Using `json_encode`?

json_encode を使用した PHP 配列から JSON 配列への変換

PHP 配列を扱う場合、使用時に JSON でどのように表現されるかを理解することが重要です。 json_エンコード。デフォルトでは、PHP 配列は、キーが連続していない場合、JSON オブジェクトとしてエンコードされます。

次の PHP 配列について考えてみましょう:

$input = [
    [
        "id" => 0,
        "name" => "name1",
        "short_name" => "n1"
    ],
    [
        "id" => 2,
        "name" => "name2",
        "short_name" => "n2"
    ]
];

json_encode を使用してこの配列をエンコードしようとすると、結果は次のようになります。次の JSON オブジェクトである必要があります:

{
    "0": {
        "id": 0,
        "name": "name1",
        "short_name": "n1"
    },
    "2": {
        "id": 2,
        "name": "name2",
        "short_name": "n2"
    }
}

この動作は、配列キーが連続していないために発生します。 (0 と 2)。配列を JSON 配列としてエンコードするには、すべてのキーがシーケンシャルである必要があります。

解決策: array_values を使用したインデックスの再作成

配列をシーケンシャル形式に変換するには、array_values を使用します。 function:

$output = json_encode(array_values($input));

これにより、配列のインデックスが 0 から再作成され、キーが連続することが保証されます。結果として得られる JSON は配列になります。

[
    {
        "id": 0,
        "name": "name1",
        "short_name": "n1"
    },
    {
        "id": 2,
        "name": "name2",
        "short_name": "n2"
    }
]

JSON での PHP 配列表現を理解し、array_values を使用して順次インデックスを再作成することにより、json_encode を使用して PHP 配列を JSON 配列として正常にエンコードできます。

以上が「json_encode」を使用して PHP 配列を JSON 配列に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。