На входе есть JSON
[{"id":70119},{"id":70131},{"id":70133},{"id":70123},{"id":70121}]
Или такой
[{"id":70119,"children":[{"id":70131}]},{"id":70133},{"id":70123},{"id":70121}]
Быть может такой :-)
[{"id":70119,"children":[{"id":70133,"children":[{"id":70131}]}]},{"id":70123},{"id":70121}]
Перевожу его в массив. Вложенность массива неконтролируемая.
echo $t.'<br>';
$t = json_decode ($t);
Как найти и удалить элемент, например, со значением "70119"?
Апдейт (решено):
Предложенный рабочий вариант от:
toster.ru/user/zoonman$t = '[{"id":70119},{"id":70131},{"id":70133},{"id":70123},{"id":70121}]';
echo $t.'<br>';
function recursiveRemoval(&$array, $val)
{
if(is_array($array))
{
foreach($array as $key=>&$arrayElement)
{
if(is_array($arrayElement))
{
recursiveRemoval($arrayElement, $val);
}
else
{
if($arrayElement == $val)
{
unset($array[$key]);
}
}
}
}
}
$t = json_decode ($t, true);
recursiveRemoval($t, '70131');
$t = json_encode($t);
echo '<hr> -> '.$t.' <- <br>';