Array
(
    [1] => Array
        (
            [0] => 姓名
            [1] => A
            [2] => AA
        )    [2] => Array
        (
            [0] => 年龄
            [1] => B
            [2] => BB
        )    [3] => Array
        (
            [0] => 民族
            [1] => C
            [2] => CC
        )
)
转成
Array
(
    [1] => Array
        (
            [0] => 姓名
            [1] => 年龄
            [2] => 民族
        )    [2] => Array
        (
            [0] => A
            [1] => B
            [2] => C
        )    [3] => Array
        (
            [0] => AA
            [1] => BB
            [2] => CC
        )
)
有什么好方法么?

解决方案 »

  1.   

    最笨的方法$arr = array(array(a,b,c),array(a1,b1,c1),array(a2,b2,c2));
    $newarr = array();
    foreach($arr as $key=>$varr)
    {
        $newarr[$key] = array();
        foreach($arr as $varrtmp)
            array_push($newarr[$key],$varrtmp[$key]);
    }
    print_r($newarr);
      

  2.   

    $array_temp = array();
    foreach($cc as $k=>$v){
    $array_temp[$k] = array();
    foreach($cc as $vv){
    if(!empty($vv[$k])){
    array_push($array_temp[$k],$vv[$k]);
    }
    }
    if(empty($array_temp[$k])){
    unset($array_temp[$k]);
    }
    }
    print_r($array_temp);优化了一下楼上的代码!呵呵~蛮好用的~
      

  3.   

    foreach($arr as $key=>$value){
      if(is_array($value)){
      foreach($value as $key1=>$value1){
    ..............
    }
    }}
      

  4.   

    手册看看array_map的最后一个例子$arr = array(array('姓名','A','AA'),array('年龄','B','BB'),array('民族','C','CC'));
    array_unshift($arr,null);
    $newArr = call_user_func_array('array_map',$arr);
    echo "<pre/>";
    print_r( $newArr);
      

  5.   

    $b = array();
    foreach($arr as $k=>$v){
           foreach($v as $k1=>$v1){
                  if(0==$k1){
                        $b[$k1][] = $v1;
                   } 
                  if(1==$k1){
                        $b[$k1][] = $v1;
                   } 
                  if(2==$k){
                        $b[$k1][] = $v1;
                   } 
                  if($k1==3){
                        $b[$k1][] = $v1;
                   } 
                 ......
           }
    }
    var_dump($b);