$item) { $value[$index] = map_deep($item, $callback); } } elseif (is_object($value)) { $object_vars = get_object_vars($value); foreach ($object_vars as $property_name => $property_value) { $value->$property_name = map_deep($property_value, $callback); } } else { $value = call_user_func($callback, $value); } return $value; } }