代码之家  ›  专栏  ›  技术社区  ›  Atif

转换php中的数组($文件)

  •  1
  • Atif  · 技术社区  · 14 年前

    我想处理像这样的数组中的多个文件上载$\u文件

    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 回复  |  直到 14 年前
        1
  •  6
  •   Marc B    14 年前

    这是Kludgey,但是

    $_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
       }
    }
    
        2
  •  0
  •   heximal    14 年前

    为什么不声明新的数组var并用所需的格式填充它呢?如

    $myarr = array();
    foreach ($_FILES as $file) {
      $myarr[] = array($file['name'][0], $file['type'][0], $file['tmp_name'][0], $file['size'][0]);
    }
    
        3
  •  0
  •   Varshaan    8 年前

    这对我有用

    $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]);
     }
    
    推荐文章