note 92471 deleted from features.file-upload.multiple by danbrown
| From: | danbrown@php.net | Date: | Sun, 26 Jul 2009 15:46:54 +0000 |
| Subject: | note 92471 deleted from features.file-upload.multiple by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-158743@lists.php.net to get a copy of this message | ||
Note Submitter: inakiabt
----
Your versions of "reArrayFiles" and "format_files_array" are not working
completely well. Here is my version, it works for all kind of $_FILES arrays (multidimensional
arrays too):
<?php
function format( $files, &$keys = array(), $file_key = NULL)
{
$names = array( 'name' => 'name', 'type' =>
'type', 'tmp_name' => 'tmp_name', 'error' =>
'error', 'size' => 'size' );
foreach( $files as $key => $part)
{
$key = (string) $key;
if(in_array($key, $names))
{
$file_key = $key;
format($part, $keys, $file_key);
} else {
if (!is_array($keys[$key]))
{
$keys[$key] = array();
}
$_keys = array_keys($part);
$last = $part[$_keys[0]];
if(is_array($last))
{
format($part, $keys[$key], $file_key);
} else
{
if (is_null($file_key))
{
$keys[$key] = $part;
break;
}
foreach ($part as $i => $data)
{
$keys[$key][$i][$file_key] = $data;
}
}
}
}
return $keys;
}
?>