麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 語(yǔ)言 > PHP > 正文

php二維數(shù)組排序方法(array_multisort usort)

2024-09-04 11:47:01
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

一維數(shù)組排序可以使用asort、ksort等一些方法進(jìn)程排序,相對(duì)來(lái)說(shuō)比較簡(jiǎn)單。二維數(shù)組的排序怎么實(shí)現(xiàn)呢?使用array_multisort和usort可以實(shí)現(xiàn)。

例如像下面的數(shù)組:

  1. $users = array
  2.     array('name' => 'tom''age' => 20) 
  3.     , array('name' => 'anny''age' => 18) 
  4.     , array('name' => 'jack''age' => 22) 
  5. ); 

希望能按照age從小到大進(jìn)行排序。筆者整理了兩個(gè)方法出來(lái),分享給大家。

1、使用array_multisort

使用這個(gè)方法,會(huì)比較麻煩些,要將age提取出來(lái)存儲(chǔ)到一維數(shù)組里,然后按照age升序排列。具體代碼如下:

  1. $ages = array(); 
  2. foreach ($users as $user) { 
  3.     $ages[] = $user['age']; 
  4.  
  5. array_multisort($ages, SORT_ASC, $users); 

執(zhí)行后,$users就是排序好的數(shù)組了,可以打印出來(lái)看看。如果需要先按年齡升序排列,再按照名稱升序排列,方法同上,就是多提取一個(gè)名稱數(shù)組出來(lái),最后的排序方法這樣調(diào)用:

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

2、使用usort

使用這個(gè)方法最大的好處就是可以自定義一些比較復(fù)雜的排序方法。例如按照名稱的長(zhǎng)度降序排列:

  1. usort($usersfunction($a$b) { 
  2.             $al = strlen($a['name']); 
  3.             $bl = strlen($b['name']); 
  4.             if ($al == $bl
  5.                 return 0; 
  6.             return ($al > $bl) ? -1 : 1; 
  7.         }); 

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

筆者更喜歡第二種方法,因?yàn)樯倭颂崛∨判騼?nèi)容到一維數(shù)組的步驟,而且排序方法更為靈活。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 精品国产一区二区三区蜜殿 | 黄色免费不卡视频 | 末成年女av片一区二区 | 久草在线新时代视觉 | 人人舔人人舔 | 一区二区三级视频 | 男女羞羞视频在线免费观看 | 免费毛片在线视频 | 国产亚洲黑人性受xxxx精品 | 午夜精品久久久久久久爽 | 国产九色在线观看 | 亚洲3p激情在线观看 | 日本成年网 | 91麻豆精品国产91久久久无需广告 | 高清做爰免费无遮网站挡 | 久久精品视频黄色 | 久久久久久久久淑女av国产精品 | 日韩av片在线免费观看 | 免费黄色短视频网站 | 红杏网站永久免费视频入口 | 97超碰资源站| 亚洲成人精品久久 | 欧美一级在线免费 | 国产毛片aaa一区二区三区视频 | 欧美亚洲免费 | 国内精品久久久久久久久久久久 | 欧美成年人在线视频 | 激情小说区 | 1314成人网| 免费观看视频91 | 黄色片网站免费看 | 黄色小视频在线免费看 | av成人在线电影 | 中文字幕观看 | 欧美成人一区二区三区 | av成人免费看 | 亚洲精品有限 | 强伦女教师视频 | 国产欧美一区二区三区免费看 | 久久经典免费视频 | 成人不卡一区二区 |