Как удалить объект из массива JSON в PHP

#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

Вот и все. Надеюсь, это поможет!