【发布时间】:2016-09-12 13:58:03
【问题描述】:
我有一个 json 数组。其中我有 3 个值。当我删除第一个或第二个值时,删除后的结果数组是一种格式。但是当我删除最后一个值时,结果数组总是会改变。我通过将数组转换回字符串来回显数组。
当我删除除最后一个之外的任何值时,例如第一个或第二个或任何其他值
结果 = {"1":{"name":"cat"},"2":{"name":"elephant"}}
这里我删除了第一个值 - 狗
$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;
但是当我删除最后一个值时,它会创建不同的格式
结果 = [{"name":"dog"},{"name":"cat"}]
在这里我删除了最后一个值 - 大象
$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;
【问题讨论】:
-
当你说不同的格式时,你的意思是它变成了一个数组而不是一个带有数字索引的对象?如果是这样,那是正常的。
-
请检查一下,它不正常。当我删除第一个或第二个值时,它会以一种格式生成数组,但如果我删除最后一个值,它会生成另一种格式的数组。