Преобразование массива в PHP ($ _FILES) - PullRequest
1 голос
/ 17 ноября 2010

Я хотел бы обработать несколько загрузок файлов $ _FILES в массиве, подобном этому

foreach ($_FILES as $file) {
 // do stuff...
 // $file['name'] and as such
}

Однако массив выглядит примерно так

Array ( 
    [name] => Array ( 
        [0] => 2010-10-04_205047.jpg 
        [1] => 
        [2] => 
    ) 

    [type] => Array (
        [0] => image/jpeg 
        [1] => 
        [2] => 
    ) 

    [tmp_name] => Array ( 
        [0] => E:\localhost\tmp\php118.tmp 
        [1] => 
        [2] => 
    ) 

    [error] => Array ( 
        [0] => 0 
        [1] => 4 
        [2] => 4 
    )   

    [size] => Array ( 
        [0] => 92127 
        [1] => 0 
        [2] => 0 
    ) 
) 

Как мне превратить его в массив нужного мне формата?

Спасибо

Ответы [ 3 ]

6 голосов
/ 17 ноября 2010

Это клуджи, но

$_MYFILES = array();
foreach(array_keys($_FILES['name']) as $i) { // loop over 0,1,2,3 etc...
   foreach(array_keys($_FILES) as $j) { // loop over 'name', 'size', 'error', etc...
      $_MYFILES[$i][$j] = $_FILES[$j][$i]; // "swap" keys and copy over original array values
   }
}
0 голосов
/ 14 апреля 2017

это сработало для меня

$files = array();
for($i =0;$_FILES['name'][$i] != NULL;$i++){
      $files[] = array($_FILES['name'][$i], $_FILES['type'][$i], $_FILES['tmp_name'][$i], $_FILES['size'][$i]);
 }
0 голосов
/ 17 ноября 2010

почему вы не хотите объявить новый массив var и заполнить его в желаемом формате?например,

$myarr = array();
foreach ($_FILES as $file) {
  $myarr[] = array($file['name'][0], $file['type'][0], $file['tmp_name'][0], $file['size'][0]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...