私はjson配列を持っています。私は3つの値を持っています。最初または2番目の値を削除すると、削除後の配列は1つの形式になります。しかし、最後の値を削除すると、結果の配列が常に変化します。私は文字列に変換することによって配列をエコーしています。同じjson配列削除プロセスは、値の異なる位置に対して異なる結果配列を生成します。
iが最後のもの以外の任意の値を削除すると、それは、第1または第2または任意の他の値と同様
結果= {「1」である:{「名前」:「猫」}、「2」 :{ "名": "象"}}ここで
私は最初の値を削除 - 犬
$animals = '{
"0":{"name":"dog"},
"1":{"name":"cat"},
"2":{"name":"elephant"}
}';
$animals = json_decode($animals, true);
$del_value = "elephant";
$loginArray = array('name' => $del_value);
if (in_array($loginArray, $animals)) {
foreach ($animals as $key => $value) {
if (in_array($del_value, $value)) {
unset($animals[$key]);
}
}
}
$animals_string = json_encode($animals);
echo $animals_string;
をしかし、私は最後の値を削除すると、それは別の書式を作成し
結果= [{ "名前": "犬"}、{ "名前": "猫"}]
ここでは、最後の値を削除 - 象
$animals = '{
"0":{"name":"dog"},
"1":{"name":"cat"},
"2":{"name":"elephant"}
}';
$animals = json_decode($animals, true);
$del_value = "elephant";
$loginArray = array('name' => $del_value);
if (in_array($loginArray, $animals)) {
foreach ($animals as $key => $value) {
if (in_array($del_value, $value)) {
unset($animals[$key]);
}
}
}
$animals_string = json_encode($animals);
echo $animals_string;
異なる形式を言うと、数値インデックスを持つオブジェクトではなく配列になるということですか?そうであれば、それは正常です。 – apokryfos
ちょうど確認してください、その正常ではありません。私は最初の値または2番目の値を削除すると、1つの形式で配列を生成しますが、最後の値を削除する場合、配列の別の形式を生成します。 –