PHP将数组从二维数组重构为数组的数组


PHP re-structure array from two-dimensional array to array of arrays

我想知道php如何将二维数组结构转换为数组的数组。请看下面更具体的例子:

我有这样的数据结构:

$_FILES["file"]["name"] = "aaaa.png";
$_FILES["file"]["type"] = "image/png"; 
$_FILES["file"]["tmp_name"] = "/tmp/phpQklCB7"; 
$_FILES["file"]["error"] = "0"; 
$_FILES["file"]["size"] = "37507";  

我需要把它重新构造成这样的数据结构:

Array ( 
    [name] => Array ( [0] => aaaa.png ) 
    [type] => Array ( [0] => image/png ) 
    [tmp_name] => Array ( [0] => /tmp/phpIERHxT ) 
    [error] => Array ( [0] => 0 ) 
    [size] => Array ( [0] => 37507 ) 
)

请尝试下面的代码

foreach($_FILES[ 'file' ] as $k=> $v )
{
   $arr[ $k ] = array( $v );
}

给你,

<?php
$_FILES["file"]["name"]     = "aaaa.png";
$_FILES["file"]["type"]     = "image/png"; 
$_FILES["file"]["tmp_name"] = "/tmp/phpQklCB7"; 
$_FILES["file"]["error"]    = "0"; 
$_FILES["file"]["size"]     = "37507";  
foreach( $_FILES[ 'file' ] as $key => $value )
{
  $new_array[ $key ] = array( $value );
}
var_dump( $new_array );

输出
array(5) {
  ["name"]=>
  array(1) {
    [0]=>
    string(8) "aaaa.png"
  }
  ["type"]=>
  array(1) {
    [0]=>
    string(9) "image/png"
  }
  ["tmp_name"]=>
  array(1) {
    [0]=>
    string(14) "/tmp/phpQklCB7"
  }
  ["error"]=>
  array(1) {
    [0]=>
    string(1) "0"
  }
  ["size"]=>
  array(1) {
    [0]=>
    string(5) "37507"
  }
}

你可以使用这个:

$arr = array(
   'name' => array(
       0 => 'aaa.png'
   ),
   'type' => array(
       0 => 'image/png'
   ),
   'tmp_name' => array(
       0 => '/tmp/phpIERHxT'
   ),
   'error' => array(
       0 => 0
   ),
   'size' => array(
       0 => 37507
   )
);