PHP で json_encode() 関数を使用して数値キーを含む配列をエンコードすると、結果は次のようになります。多くの場合、配列文字列ではなく、キーを含むオブジェクト文字列が使用されます。これは、配列の配列形式を想定している場合に問題になる可能性があります。
問題の説明:
JavaScript では、配列には連続した数値キーが必要です。 json_encode() は、PHP 配列内のキーが連続した数字でない場合にオブジェクトを出力します。
解決策:
正規表現を使用せずにこの問題を解決するには、次の方法を利用できます。 array_values() 関数を使用して、元の配列キーを破棄し、0 から始まる連続番号に置き換えます。これにより、エンコードされた結果が配列文字列であることが保証されます。
例:
// Non-consecutive numeric keys in PHP array $array = array( 2 => array("Afghanistan", 32, 13), 4 => array("Albania", 32, 12) ); // Remove original keys with array_values() $out = array_values($array); // Encode the resulting array $json = json_encode($out); // Output: [["Afghanistan", 32, 13], ["Albania", 32, 12]]
array_values() を使用すると、JSON で目的の配列の配列形式を取得できます。また、連続しない数字キーを使用したオブジェクト形式は避けてください。
以上が連続しない数値キーを含む PHP 配列を JSON 配列としてエンコードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。