Манипуляции в массивом, callback функция array_walk()

Код

function editArr(&$item, $value, $rule){
    if(is_string($rule)){
        if(preg_match('#strip#i', $rule)){
            $item = strip_tags($item);
        }
        if(preg_match('#trim#i', $rule)){
            $item = trim($item);
            $item = str_replace(array("\n", "\r"), '', $item);
        }
        if(preg_match('#href#i', $rule)){
            $item = _getFromPage('href="', '"', $item, 'string');
        }
    }
    if(is_array($rule)){
        if(isset($rule['addBefore'])){
            $item = $rule['addBefore'].$item;
        }
        if(isset($rule['addAfter'])){
            $item = $item.$rule['addBefore'];
        }
        if(isset($rule['replace'])){
            $item = preg_replace('`'.$rule['replace'][0].'`i', $rule['replace'][1], $item);
        }
        if(isset($rule['getFromPage'])){
            preg_match_all('`'.$rule['getFromPage'][0].'(.*?)'.$rule['getFromPage'][1].'`s', $item, $events);
            $item = $events[1];
        }
    }
}

Пример