1. arrayが0から始まる連続配列の場合、json_encodeの結果は[]で囲まれた文字列となります。
配列が0から始まらない配列や連続していない配列の場合、json_encodeの結果は{}で囲まれたkey-valueパターンの文字列となります
コードをコピー コードは次のとおりです:
$test = array();
$test[] = 1;
$test[] = 1;
$test[] = 1;
echo json_encode($test);
[1,1,1]
コードをコピー コードは次のとおりです:
$test = array();
$test[] = 1;
$test[] = 1;
$test[] = 1;
unset($test[0]);
echo json_encode($test);
{"1":1,"2":1}
2. 文字列がパターン [1,1,1] にある場合、json_decode によって解析された結果はデフォルトで配列になります。
文字列がパターン {"1":1,"2":1} にある場合、json_decode によって解析された結果はデフォルトでオブジェクトになります。この時点で、2 番目のパラメーターを true に設定して強制的にオブジェクトにすることができます。配列を返す
3. 上記の状況は、JSON エンコードを使用する場合は 2 番目のパラメーターを true に設定することが推奨されるため、PHP が 1 次元配列と 2 次元配列を区別できないために発生します。