PHP内置函数 array_multisort 要求每个数组大小一样 $areas是地区的二维数组,包含人数和次数,现在要按这2种数进行降序排序 <div class="codetitle"><a style="CURSOR: pointer" data="62246" class="copybut" id="copybut62246" onclick="doCopy('code62246')"> 代码如下:<div class="codebody" id="code62246"> foreach($areaArray as &$areas) { $times = $numbers = array(); foreach($areas as $province => $v) { $times[$province] = $v['times']; $numbers[$province] = $v['numbers']; } array_multisort($times,SORT_DESC,$numbers,$areas); } 比如有个多为数组: <div class="codetitle"><a style="CURSOR: pointer" data="53960" class="copybut" id="copybut53960" onclick="doCopy('code53960')"> 代码如下:<div class="codebody" id="code53960"> $arr = array( ‘d' => array(‘id' => 5,‘name' => 1,‘age' => 7), ‘b' => array(‘id' => 2,'name' => 3,'age' => 4), ‘a' => array(‘id' => 8,'name' => 10,'age' => 5), ‘c' => array(‘id' => 1,'name' => 2,'age' => 2) ); 需要对二维数组中的 age 项排序。 需要用到PHP的内置函数 array_multisort(),可以看手册。 自定义函数: <div class="codetitle"><a style="CURSOR: pointer" data="31934" class="copybut" id="copybut31934" onclick="doCopy('code31934')"> 代码如下:<div class="codebody" id="code31934"> function multi_array_sort($multi_array,$sort_key,$sort=SORT_ASC){ if(is_array($multi_array)){ foreach ($multi_array as $row_array){ if(is_array($row_array)){ $key_array[] = $row_array[$sort_key]; }else{ return false; } } }else{ return false; } array_multisort($key_array,$sort,$multi_array); return $multi_array; } //处理 echo “”; print_r(multi_array_sort($arr,'age'));exit; //输出 Array ( [c] => Array ( [id] => 1 [name] => 2 [age] => 2 ) [b] => Array ( [id] => 2 [name] => 3 [age] => 4 ) [a] => Array ( [id] => 8 [name] => 10 [age] => 5 ) [d] => Array ( [id] => 5 [name] => 1 [age] => 7 ) ) written by 大宇 0
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|