PHP array_mulitsort

1.函数的作用:对多维数组进行排序

2.函数的例子:

例子一:

 1 <?php
 2 // http://php.net/manual/zh/function.array-multisort.php
 3 $multiArray = Array(
 4     Array("id" => 1, "name" => "Defg"),
 5     Array("id" => 2, "name" => "Abcd"),
 6     Array("id" => 3, "name" => "Bcde"),
 7     Array("id" => 4, "name" => "Cdef"));
 8 $tmp = Array();
 9 foreach($multiArray as &$ma)
10     $tmp[] = &$ma["name"];
11 array_multisort($tmp, $multiArray);
12 foreach($multiArray as &$ma)
13     echo $ma["name"]."<br/>";
14                
15 /* Outputs
16     Abcd
17     Bcde
18     Cdef
19     Defg
20 */ 
 1 <?php
 2 // http://php.net/manual/zh/function.array-multisort.php
 3 $multiArray = Array(
 4     Array("id" => 1, "name" => "Defg"),
 5     Array("id" => 2, "name" => "Abcd"),
 6     Array("id" => 3, "name" => "Bcde"),
 7     Array("id" => 4, "name" => "Cdef"));
 8 $tmp = Array();
 9 foreach($multiArray as &$ma)
10     $tmp[] = &$ma["name"];
11 array_multisort($tmp, $multiArray);
12 foreach($multiArray as &$ma)
13     echo $ma["name"]."<br/>";
14                
15 /* Outputs
16     Abcd
17     Bcde
18     Cdef
19     Defg
20 */ 

例子二:

 1 // http://php.net/manual/zh/function.array-multisort.php
 2 function array_msort($array, $cols)
 3 {
 4     $colarr = array();
 5     foreach ($cols as $col => $order) {
 6         $colarr[$col] = array();
 7         foreach ($array as $k => $row) { $colarr[$col]['_'.$k] = strtolower($row[$col]); }
 8     }
 9     $eval = 'array_multisort(';
10     foreach ($cols as $col => $order) {
11         $eval .= '$colarr[\''.$col.'\'],'.$order.',';
12     }
13     $eval = substr($eval,0,-1).');';
14     eval($eval);
15     $ret = array();
16     foreach ($colarr as $col => $arr) {
17         foreach ($arr as $k => $v) {
18             $k = substr($k,1);
19             if (!isset($ret[$k])) $ret[$k] = $array[$k];
20             $ret[$k][$col] = $array[$k][$col];
21         }
22     }
23     return $ret;
24 
25 }

 

转载于:https://www.cnblogs.com/jingjingdidunhe/p/6825803.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值