开发者

Converting Array in PHP ($_FILES)

开发者 https://www.devze.com 2023-01-25 06:35 出处:网络
I would like to handle the multiple file uploads $_FILES in an array like this foreach ($_FILES as $file) {

I would like to handle the multiple file uploads $_FILES in an array like this

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

However the array seems something like this

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 
    ) 
) 

How should I make it into the array of the format th开发者_运维技巧at I want ?

Thanks


This is kludgey, but

$_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
   }
}


why don't you want to declare new array var and to fill it in desirable format? eg

$myarr = array();
foreach ($_FILES as $file) {
  $myarr[] = array($file['name'][0], $file['type'][0], $file['tmp_name'][0], $file['size'][0]);
}


this worked for me

$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]);
 }


foreach ($_FILES['photo']['name'] as $key => $value){
    $photo[$key]['name'] = $value;
}

foreach ($_FILES['photo']['type'] as $key => $value) {
    $photo[$key]['type'] = $value;
}

foreach ($_FILES['photo']['tmp_name'] as $key => $value) {
    $photo[$key]['tmp_name'] = $value;
}

foreach ($_FILES['photo']['error'] as $key => $value) {
    $photo[$key]['error'] = $value;
}

foreach ($_FILES['photo']['size'] as $key => $value) {
    $photo[$key]['size'] = $value;
}

if ($photo[0]['error'] == 4)
    $photo = [];



echo '<pre>';
print_r($photo);
echo '</pre>';
0

精彩评论

暂无评论...
验证码 换一张
取 消