三维数组重组

array(1) {
  ["photo"] => array(5) {
    ["name"] => array(3) {
      [0] => string(7) "221.png"
      [1] => string(8) "2211.png"
      [2] => string(17) "545843ec763cf.jpg"
    }
    ["type"] => array(3) {
      [0] => string(9) "image/png"
      [1] => string(9) "image/png"
      [2] => string(10) "image/jpeg"
    }
    ["tmp_name"] => array(3) {
      [0] => string(27) "C:\Windows\Temp\php55FF.tmp"
      [1] => string(27) "C:\Windows\Temp\php5600.tmp"
      [2] => string(27) "C:\Windows\Temp\php5601.tmp"
    }
    ["error"] => array(3) {
      [0] => int(0)
      [1] => int(0)
      [2] => int(0)
    }
    ["size"] => array(3) {
      [0] => int(8353)
      [1] => int(8194)
      [2] => int(527569)
    }
  }
}



我有这样一个三维数组 怎样才能变成
    
      array(3){

  [0]=>array(5){
     ['name']=>"221.png"
     ['type']=>"image/png"
     ["tmp_name"]=>"C:\Windows\Temp\php55FF.tmp"
     ["error"]=> int(0)
     ['size']=>int(8353)

  }
  [1]=>array(5){
    ['name']=>"2211.png"
     ['type']=>"image/png"
     ["tmp_name"]=>"C:\Windows\Temp\php5600.tmp"
     ["error"]=> int(0)
     ['size']=> int(8194)

  }
    [2]=>array(5){
    ['name']=>"545843ec763cf.jpg"
     ['type']=>"image/png"
     ["tmp_name"]=> "C:\Windows\Temp\php5601.tmp"
     ["error"]=> int(0)
     ['size']=> int(527569)

  }


  }

求大神指导 感谢

阅读 3k
5 个回答

代码:

    <?php
        $arr = array("photo" => array(
            "name" => array(
              0 =>  "221.png",
              1 =>  "2211.png",
              2 =>  "545843ec763cf.jpg",
            ),
            "type" => array(
              0 => "image/png",
              1 => "image/png",
              2 => "image/jpeg",
            ),
            "tmp_name" => array(
              0 => "C:\Windows\Temp\php55FF.tmp",
              1 => "C:\Windows\Temp\php5600.tmp",
              2 => "C:\Windows\Temp\php5601.tmp",
            ),
            "error" => array(
              0 => 0,
              1 => 0,
              2 => 0,
            ),
            "size" => array(
              0 => 8353,
              1 => 8194,
              2 => 527569,
            )
          ));
        
        $result = array();
        foreach (current($arr) as $key => $value) {
          foreach ($value as $k => $val) {
            $result[$k][$key] = $val;
          }
        }
        
        var_dump($result);die;
        
        
        

结果截图:
图片描述

$files = [];
for($i=0;i<count($photo['name']);$i++)
{
    $files[] = [
        'name'=>$photo['name'],
        'type'=>$photo['type'],
        'tmp_name'=>$photo['tmp_name'],
        'error'=>$photo['error'],
        'size'=>$photo['size']
    ];
}

除了这样子没啥其他好方法吧

 foreach ($item as $key => $value) {
     
           $old_array=$value;
          $new_array=array();
          foreach($old_array as $key=>$value){
          for($i=0;$i<=count($old_array[$key])-1;$i++){
          foreach(array_keys($old_array) as $k=>$v){
          $new_array[$i][$v]=$old_array[$v][$i];
          }
          }
          break;
          }

 }

你这是多文件上传啊。

遍历遍历么~

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题