Задача по многоменрному ассоциативному массиву

Jake Badland

Новичок
Доброго времени суток. Собственно есть массив. Допустим:
PHP:
$sample = array(
    1 => '1',
    2 => array(
        'test'  => '<br>test',
        '2'     => 2,
        3       => array(
            'val1'  => '<h1>val1</h1>',
            'val2'  => 2
        )
    )
);
Задача пробежаться по нему и вырезать все теги из значений, оставив ключи и с сохранением оригинальной структуры.
Накалякал вот такое:
PHP:
function parse_arr(&$original){
    foreach ($original as $key => $value){
        if (is_array($value) && count($value) > 1){
            parse_arr($value);
        }else{
            $original[$key] = strip_tags($value);
        }
    }
}

parse_arr($sample);
echo '<pre>';
var_dump($sample);
echo  '</pre>';
Никак не могу понять как достучаться до элемента массива дабы почистить каждое значение.
Думал уже сохранять цепочку ключей по которым потом достучаться, но во первых возникла проблема определения верхнего уровня для сброса цепочки, во вторых мне кажется должен быть вариант попроще)))
Подскажите пожалуйста.
 
Последнее редактирование:

WMix

герр M:)ller
Партнер клуба
PHP:
function parse_arr($original){
   foreach ($original as $key => $value){
        if (is_array($value) && count($value) > 1){
            $original[$key] = parse_arr($value);
        }else{
            $original[$key] = strip_tags($value);
        }
    }
    return $original;
}

echo '<pre>';
var_dump(parse_arr($sample));
echo  '</pre>';
 

Jake Badland

Новичок
PHP:
function parse_arr($original){
   foreach ($original as $key => $value){
        if (is_array($value) && count($value) > 1){
            $original[$key] = parse_arr($value);
        }else{
            $original[$key] = strip_tags($value);
        }
    }
    return $original;
}

echo '<pre>';
var_dump(parse_arr($sample));
echo  '</pre>';
Понял, перемудрил я видимо с передачей по ссылке. Спасибо)
 

AnrDaemon

Продвинутый новичок
Если ты хотел донести какую-то мысль, то тебе придётся её перефразировать.
 

Jake Badland

Новичок
Если ты хотел донести какую-то мысль, то тебе придётся её перефразировать.
Проекту уже овер 10ть лет. Не раз уже переходили на более свежую версию PHP в связи с чем из - за депрекейта или изменения некоторых функций ложилось все. Я стараюсь избегать "свежих" функций. Может быть и зря.
 

Jake Badland

Новичок
Ха, пожалуй прийдется пересмотреть свое отношение к "свежим" функциям ))))
 
Сверху