这样一个索引数组怎么变成一个这样的二维数组?

array(5) {
  [0]=>
  string(46) "download/20190820/201908200834331566290073.mp4"
  [1]=>
  string(46) "download/20190820/201908200836321566290192.mp4"
  [2]=>
  string(46) "download/20190820/201908200848311566290911.mp4"
  [3]=>
  string(46) "download/20190820/201908200848421566290922.mp4"
  [4]=>
  string(46) "download/20190820/201908200848531566290933.mp4"
}

我前端想要的数据大概就是这样的
请问这个数据怎么变成下面这样的

[
    {name: "download/20190820/201908200848531566290933.mp4",size: 555385},
    {name: "download/20190820/201908200848531566293443.mp4",size: 574695},
    {name: "download/20190820/201908200848531566290273.mp4",size: 551112}
]

下面这样试了一下可是不行

        $res = $disk->allFiles($directory); //结果是一个一维索引数组
        $arr=[];
        foreach($res as $k=>$v){
            $arr[]['name']=$v;
            $arr[]['size']=Storage::size('/'.$v);
        }
        return $arr;

得到的结果是这样的

array(10) {
  [0]=>
  array(1) {
    ["name"]=>
    string(28) "201908200834331566290073.mp4"
  }
  [1]=>
  array(1) {
    ["size"]=>
    int(4860514)
  }
  [2]=>
  array(1) {
    ["name"]=>
    string(28) "201908200836321566290192.mp4"
  }
  [3]=>
  array(1) {
    ["size"]=>
    int(4860514)
  }
  [4]=>
  array(1) {
    ["name"]=>
    string(28) "201908200848311566290911.mp4"
  }
  [5]=>
  array(1) {
    ["size"]=>
    int(4860514)
  }
  [6]=>
  array(1) {
    ["name"]=>
    string(28) "201908200848421566290922.mp4"
  }
  [7]=>
  array(1) {
    ["size"]=>
    int(4860514)
  }
  [8]=>
  array(1) {
    ["name"]=>
    string(28) "201908200848531566290933.mp4"
  }
  [9]=>
  array(1) {
    ["size"]=>
    int(4860514)
  }
}
阅读 1.9k
2 个回答

你需要的是json格式,json_encode一下。

foreach($res as $k=>$v){
    $arr[] = [
        'name'=>$v,
        'size'=>Storage::size('/'.$v),
    ];
}
推荐问题