求多个一维数组转多维数组的方法?

#1 小双

我有三个一维数组$name、$num、$pre:
$name=array("a","b","c","d");
$num=array("1","2","4","3");
$pre=array("1%","23%","5%","8%");
要把他们组合成一个多维数组$row:
 
$row=array(
     [0] => Array
          (
          "name"=>a,         
          "num"=>1,      
          "pre"=>1%,
          )
     [1] => Array
          (
          "name"=>b,         
          "num"=>2,      
          "pre"=>23%,
          )
     [2] => Array
          (
          "name"=>c,         
          "num"=>4,      
          "pre"=>5%,
          )
     [3] => Array
          (
          "name"=>d,         
          "num"=>3,      
          "pre"=>8%,
          )
);


用php代码怎么实现上面的效果?

2010-12-13 09:59:49

#2 小双

自己搞定,呵呵!:lol
 不过下标不是name、num、pre,而是[0]、[1]、[2]
$ar1=array_chunk($name,1);
                $ar2=array_chunk($num,1);
                $ar3=array_chunk($pre,1);
                //$rows=array_merge_recursive($ar1,$ar2,$ar3);
                for($i=0;$i                        $rows[$i]=array_merge_recursive($ar1[$i],$ar2[$i],$ar3[$i]);
                }
                                dump($rows);

2010-12-13 10:18:59

#3 jake

:handshake刚刚还想找个PHP函数来解决呢

2010-12-13 10:31:19

#4 小双

:victory: 刚百度哈,找到了多维数组的排序方法,也贴出来,希望对跟我一样找答案的朋友有所帮助:

foreach ($rows as $key => $value) {
                        $name[$key] = $value[1];
                        $rating[$key] = $value[2];
                }
                array_multisort($rating,SORT_DESC,$name,SORT_DESC,$rows);
dump($rows);

2010-12-13 10:54:31

#5 azwl

这样呢:
$rows=array()
$rows['name']=$name
$rows['num']=$num
$rows['pre']=$pre

2010-12-13 21:02:00

#6 小双

这样呢:
azwl 发表于 2010-12-13 21:02
这个跟上面我说的不一样,效果是相反的,我得到的是34个下标的多维数组,而你得到的是3个下标的数组。我的目的是,把三个单独的一维数组转换成一个类似findAll()查询出来的多维数组。然后可以在smarty里面用foreach循环,而且可以排序。说白了,就是把数组中的值当作数据库中字段数据来读的效果。:handshake 上面的问题,哦已经搞定!感谢关注!

2010-12-14 17:07:53

#7 azwl

回复 6 小双

我理解错了

2010-12-14 21:14:56