#php #arrays #json
#php #массивы #json
Вопрос:
У меня есть массив JSON. Я хочу удалить запись с номером 4
и вернуть оставшийся массив
$filters = '{"1":1,"2":2,"3":4}';
$fobj = json_decode($filters, TRUE);
foreach($fobj as $key => $value)
{
if (in_array(4, $fobj)) {
unset($fobj[4]);
}
}
echo $filters = json_encode($fobj );
Но это echo
не дает мне того, что я хочу. Я хочу, чтобы он возвращал что-то вроде этого:
{"1":1,"2":2}
Ответ №1:
Вы удаляете четвертое значение массива, а не значение. Вместо этого используйте array_search
$filters = '{"1":1,"2":2,"3":4}';
$fobj = json_decode($filters, TRUE);
$search = array_search(4, $fobj);
if($search !== false) unset($fobj[$search]);
echo $filters = json_encode($fobj );
Ответ №2:
$index = array_search("4", $array);
unset($array[$index]);
http://php.net/manual/de/function .array-search.php
http://php.net/manual/de/function.unset.php
Вот и все. Надеюсь, это поможет!