Простая рекурсивная функция должна делать:
/**
* @param $array [mix] The original array
* @param $skey [string] The key name you want to replace
* @param $replace [mix] The new value you want assign
*/
function recurse($array, $skey, $replace)
{
# I would convert objects to arrays, it's just easier to not have to
# deal with a mix (in my opinion)
if(is_object($array))
$array = (array) $array;
# Just send value back if not an array
if(!is_array($array))
return $array;
# Loop array, try to match. No match, recurse
foreach($array as $key => $value)
$array[$key] = ($skey === $key)? $replace : recurse($value, $skey, $replace);
# Return each array
return $array;
}
Для использования:
$original_array = recurse($original_array, 'custom_image', $repacement_value);