#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