我见过类似的问题,我根本不明白答案。希望如果我具体询问我的代码,会点击一下。我已经被困了一段时间,非常感谢你的帮助。
我有一个数组: foreach($ showresult as $ display) { $ display_result [] = array('parkid'=> $ display ['parkid'],
'trailsys' =>$display['trailsys'],
'trailset' =>$display['trailset'],
'name' =>$display['name'],
'description' =>$display['description'],
'url' =>$display['url'],
'ldes' =>$display['ldes'],
'ltxt' =>$display['ltxt'],
'address' =>$display['address'],
'city' =>$display['city'],
'zip' =>$display['zip'],
'phone' =>$display['phone'],
'pos' =>$display['pos'],
'T1' => $display['systemname'],
'T2'=> $display['name']);
{ 'state' =>$display['state'],
数组中的每个项目都有一个T1值。 T2可以有一个值,或者它可以是0.我想用T1按字母顺序排列列表。在某些情况下,将有三个或四个条目,其中T1是相同的,然后我想通过T2按字母顺序排列。我很难过。
请帮忙。
答案 0 :(得分:0)
您应该尝试使用usort()函数(http://www.php.net/usort)。它允许您通过自定义函数对数组进行排序。所以,在你的情况下,它会是这样的:
<?
usort($array,function($a,$b) {
if ($a['T1'] < $b['T1']) return -1;
elseif ($a['T1'] > $b['T1']) return 1;
else {
if ($a['T2'] < $b['T2']) return -1;
elseif ($a['T2'] > $b['T2']) return 1;
else return 0;
}
});
?>
你可以检查出来并根据你的需要进行调整。
请告诉我这是否适合您。