1
私はtest_bots.jsonから値を設定解除して元に戻そうとしていますが、何らかの形でデータ形式が変更されています。JSON配列がオブジェクトに変換されるのはなぜですか?
test_bots.jsonは、このJSONの配列が含まれています
$good = 'Toni';
$good_arr = file_get_contents('test_bots.json');
$good_arr = json_decode($good_arr);
if(in_array($good, $good_arr)){
$key = array_search($good, $good_arr);
unset($good_arr[$key]);
$good_arr2 = json_encode($good_arr);
file_put_contents('test_bots.json',$good_arr2);
}
保存されます出力は次のとおりです:
["John","Vladimir","Toni","Joshua","Jessica"]
私のコードは次のようになります
{"0":"John","1":"Vladimir","3":"Joshua","4":"Jessica"}
が、私は出力をしたいです次のようになります。
["John","Vladimir","Joshua","Jessica"]
保存する前に配列のシリアル化を解除しようとしましたが、動作しません。
どうしてですか?
'file_put_contents'の' $ good_arr'を '$ good_arr2'に変更しました。 – jardis
ちょうどタイプミスのように見えます。 @jardisが指摘しているように、 'json_encode'で作成したばかりの変数をファイルに保存しておらず、エンコードされていない配列を保存しています。 –
申し訳ありませんが、それはタイプミスでした。私は私の質問を編集しました。 @ Do not Panic – MHH