ホームページ >バックエンド開発 >PHPチュートリアル >PHP 配列がオブジェクトではなく JSON 配列としてエンコードされるようにするにはどうすればよいですか?

PHP 配列がオブジェクトではなく JSON 配列としてエンコードされるようにするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-26 02:42:09278ブラウズ

How Can I Ensure My PHP Array Encodes as a JSON Array, Not an Object?

PHP 配列を JSON 配列としてエンコードする

PHP 配列をオブジェクトではなく JSON 配列に変換するジレンマは、PHP 配列が次の場合に発生します。非連続キーを持っています。デフォルトでは、キーが連続していない場合、 json_encode() は配列をオブジェクトとして解釈します。

この問題に対処するには、JSON RFC 8259 仕様を理解することが重要です。配列は、カンマで区切られた値を角かっこで囲むものとして定義されます。したがって、JSON 配列を生成するには、PHP 配列に連続した数値キー (0、1、2、...) が必要です。

指定された例では、PHP 配列にはキー 0 と 2 がありますが、1 はありません。この非シーケンシャルなキー構造により、 json_encode() は配列をオブジェクトとして扱います。

これを修正して配列を JSON 配列としてエンコードするには、 array_values() を使用して順番にインデックスを再作成する必要があります。この関数は、連続した数値キーを持つ新しい配列を作成し、元の配列を JSON エンコードに受け入れられる形式に効果的に変換します。

次のコード スニペットは、array_values() を使用して目的の結果を達成する方法を示しています。

echo json_encode(array_values($input));

以上がPHP 配列がオブジェクトではなく JSON 配列としてエンコードされるようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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