I have a form that has some fields like this:
Here is a function that does that and works with name attributes as:
name="artist[images][]"
name="images[]"
name="image"
Also works with more than one file field:
PHP:
function get_files( $array )
{
$output = array();
foreach ( $array as $base_key => $file ) {
if ( is_array($file['name']) ) {
$file_keys = array_keys( $file['name'] );
foreach ( $file_keys as $file_key ) {
if ( is_array( $file['name'][$file_key] ) ) {
$keys = array_keys( $file['name'][$file_key] );
foreach ( $keys as $key ) {
$output[$base_key][$file_key][$key] = array (
'name' => $file['name'][$file_key][$key],
'type' => $file['type'][$file_key][$key],
'tmp_name' => $file['tmp_name'][$file_key][$key],
'error' => $file['error'][$file_key][$key],
'size' => $file['size'][$file_key][$key]
);
}
} else $output[$base_key][$file_key] = array(
'name' => $file['name'][$file_key],
'type' => $file['type'][$file_key],
'tmp_name' => $file['tmp_name'][$file_key],
'error' => $file['error'][$file_key],
'size' => $file['size'][$file_key]
);
}
} else $output[$base_key] = $file;
}
return $output;
}