亚洲午夜久久久久久噜噜噜,欧美+国产在线观看,日韩a片无码毛片免费看,爱如潮水日本免费完整版观看

php二維數(shù)組按其中一列字符串長度排序

開發(fā)技術(shù) 2017/9/15

PHP一維數(shù)組排序比較簡單,使用asort、ksort等一些方法進行排序就可以了。PHP二維數(shù)組排序就相對難一點,必須使用array_multisort和usort來實現(xiàn)

下面舉個例子

假設數(shù)組:

$users = array(

   array('name' => 'tom',  'age' => 20),

array('name' => 'anny', 'age' => 18),

array('name' => 'jack', 'age' => 22)

);

想要按age從小到大排序。方法如下:

一、使用array_multisort排序

原理:將age提取出來存儲到一維數(shù)組里,然后按照age升序排列。

具體代碼:

$ages = array();

foreach ($users as $user) {

 $ages[] = $user['age'];

}

array_multisort($ages, SORT_ASC, $users);

運行后,$users就是排序好的數(shù)組了。如果需要先按年齡升序排列,再按照名稱升序排列,方法同上,就是多提取一個名稱數(shù)組出來,再進行排序

調(diào)用方法:

array_multisort($ages, SORT_ASC, $names, SORT_ASC, $users);

二、使用usort

這個方法最大的好處就是可以自定義一些相對復雜點的排序方法。例如按照name的長度降序排序:

具體代碼:

usort($users, function($a, $b) {

     $al = strlen($a['name']);

     $bl = strlen($b['name']);

     if ($al == $bl)

       return 0;

     return ($al > $bl) ? -1 : 1;

   });

這里使用了匿名函數(shù),如果有需要也可以單獨提取出來。其中$a, $b可以理解為$users數(shù)組下的元素,可以直接索引name值,并計算長度,而后比較長度就可以了。

中國· 上海

谷谷二維碼
添加微信咨詢

CopyRight?2009-2019 上海谷谷網(wǎng)絡科技有限公司 All Rights Reserved. 滬ICP備11022482號-8  

關(guān)于我們 | 聯(lián)系我們

主站蜘蛛池模板: 额尔古纳市| 定兴县| 五峰| 德兴市| 邻水| 河南省| 阿尔山市| 左贡县| 静海县| 马尔康县| 濉溪县| 博爱县| 普安县| 台中市| 铜山县| 南川市| 宁强县| 沙湾县| 城步| 尼玛县| 太白县| 博乐市| 伊吾县| 永济市| 嘉荫县| 曲麻莱县| 拜城县| 师宗县| 万源市| 淳安县| 穆棱市| 合作市| 水城县| 佛冈县| 休宁县| 同仁县| 曲阜市| 瑞金市| 南汇区| 北川| 达孜县|