/** * Rebuilds $_FILES array to more user-friendly look * * @param string $name Name of file parameter * @return array Rebuilt file array */ function fn_rebuild_files($name) { $rebuilt = array(); if (!is_array(@$_FILES[$name])) { return $rebuilt; } if (isset($_FILES[$name]['error'])) { if (!is_array($_FILES[$name]['error'])) { return $_FILES[$name]; } } elseif (fn_is_empty($_FILES[$name]['size'])) { return $_FILES[$name]; } foreach ($_FILES[$name] as $k => $v) { if ($k == 'tmp_name') { $k = 'path'; } $rebuilt = fn_array_multimerge($rebuilt, $v, $k); } return $rebuilt; }
function fn_array_multimerge($array1, $array2, $name) { if (is_array($array2) && count($array2)) { foreach ($array2 as $k => $v) { if (is_array($v) && count($v)) { $array1[$k] = fn_array_multimerge(@$array1[$k], $v, $name); } else { $array1[$k][$name] = $name == 'error' ? 0 : $v; } } } else { $array1 = $array2; } return $array1; }