Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
转换php数组的正确方法_Php_Arrays_Cakephp_File Upload_Upload - Fatal编程技术网

转换php数组的正确方法

转换php数组的正确方法,php,arrays,cakephp,file-upload,upload,Php,Arrays,Cakephp,File Upload,Upload,我有像这样的数据数组 $data = [ 'name' => [ (int) 0 => '095a108478345cac184f956b1e8dee91a5a89f87bbabd7b3fb4058f577adf.jpg', (int) 1 => '02059.jpg', (int) 2 => 'avatar.jpg' ], 'type' => [ (int) 0 =&g

我有像这样的数据数组

    $data = [
    'name' => [
        (int) 0 => '095a108478345cac184f956b1e8dee91a5a89f87bbabd7b3fb4058f577adf.jpg',
        (int) 1 => '02059.jpg',
        (int) 2 => 'avatar.jpg'
    ],
    'type' => [
        (int) 0 => 'image/jpeg',
        (int) 1 => 'image/jpeg',
        (int) 2 => 'image/jpeg'
    ],
    'tmp_name' => [
        (int) 0 => 'C:\xampp\tmp\php17AA.tmp',
        (int) 1 => 'C:\xampp\tmp\php17BA.tmp',
        (int) 2 => 'C:\xampp\tmp\php17BB.tmp'
    ],
    'error' => [
        (int) 0 => (int) 0,
        (int) 1 => (int) 0,
        (int) 2 => (int) 0
    ],
    'size' => [
        (int) 0 => (int) 80542,
        (int) 1 => (int) 6532,
        (int) 2 => (int) 6879
    ]
  ]
我需要像这样转换成数组

    $data = [
    (int) 0 => [
        'name' => '095a108478345cac184f956b1e8dee91a5a89f87bbabd7b3fb4058f577adf.jpg',
        'type' => 'image/jpeg',
        'tmp_name' => 'C:\xampp\tmp\php17AA.tmp',
        'error' => (int) 0,
        'size' => (int) 80542
    ],
    (int) 1 => [
        'name' => '02059.jpg',
        'type' => 'image/jpeg',
        'tmp_name' => 'C:\xampp\tmp\php17BA.tmp',
        'error' => (int) 0,
        'size' => (int) 6532
    ],
    (int) 2 => [
        'name' => 'avatar.jpg',
        'type' => 'image/jpeg',
        'tmp_name' => 'C:\xampp\tmp\php17BB.tmp',
        'error' => (int) 0,
        'size' => (int) 6879
    ]
   ]
我正在寻找将第一个php数组转换为第二个php数组的正确方法。是否为这些操作提供了任何PHP数组函数。通过CakePHP哈希数组管理,两者都是可能的

是的,我可以创建一些foreach循环并创建所需的数组,但我不确定是否有更优雅的方法。

从PHP5.5开始,您可以使用并执行此操作

$ret = []; $keys = array_keys($data);
for ($i=0; $i<3; $i++) {
    $ret[$i] = array_combine($keys, array_column($data, $i));
}

为了完整起见,这里有一个示例,其中只有两个
foreach

$ret = [];
foreach($data as $key => $val) {
    $i = 0;
    foreach ($val as $v) {
        $ret[$i][$key] = $v;
        $i++;
    }
}
顺便说一句,我将使用它,而不考虑其他实现

$ret = [];
foreach($data as $key => $val) {
    $i = 0;
    foreach ($val as $v) {
        $ret[$i][$key] = $v;
        $i++;
    }
}