亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP實現的多維數組排序算法分析

2024-09-04 11:46:41
字體:
來源:轉載
供稿:網友

本文實例講述了PHP實現的多維數組排序算法。分享給大家供大家參考,具體如下:

突然想起了一道面試題,把一個多維數組排序。

例:

  1. <?php 
  2. //有一個多維數組 
  3. $a = array
  4.   array('key1'=>940, 'key2'=>'blah'), 
  5.   array('key1'=>23, 'key2'=>'this'), 
  6.   array('key1'=>894, 'key2'=>'that'
  7. ); 
  8. //那么怎么對key1或者key2進行排序呢,這里就需要使用到usort($arr, 'myfunction')函數了,它的作用是對$arr使用我們自定義的方法進行排序,具體使用方法可以查看手冊 
  9. //1.對key1的值進行排序 
  10. function asc_key1_sort($x$y) { 
  11.   //可以輸出一下看看是怎么比較的 
  12.   echo 'Iteration:'.$x['key1'].' vs '.$y['key1']; 
  13.   if($x['key1'] > $y['key1']) { 
  14.     echo 'true<br/>'
  15.     return true; 
  16.   }elseif($x['key1'] < $y['key1']) { 
  17.     echo 'false<br/>'
  18.     return false; 
  19.   }else { 
  20.     echo '0'
  21.     return 0; 
  22.   } 
  23. //進行排序 
  24. usort($a'asc_key1_sort'); 
  25. var_dump($a); 
  26. //2.對key2字符進行排序 
  27. function asc_key2_sort($x$y) { 
  28.   //可以使用strcasecmp()函數進行排序 
  29.   echo 'Iteration:'.$x['key2'].' vs '.$y['key2'].'<br/>'
  30.   return strcasecmp($x['key2'], $y['key2']); 
  31. //進行排序 
  32. usort($a'asc_key2_sort'); 
  33. var_dump($a); 
  34. ?> 

運行結果:

  1. Iteration:23 vs 940false 
  2. Iteration:894 vs 23true 
  3. Iteration:940 vs 23true 
  4. Iteration:894 vs 940false 
  5. array(3) { [0]=> array(2) { ["key1"]=> int(23) ["key2"]=> string(4) "this" } [1]=> array(2) { ["key1"]=> int(894) ["key2"]=> string(4) "that" } [2]=> array(2) { ["key1"]=> int(940) ["key2"]=> string(4) "blah" } } Iteration:that vs this 
  6. Iteration:blah vs that 
  7. array(3) { [0]=> array(2) { ["key1"]=> int(940) ["key2"]=> string(4) "blah" } [1]=> array(2) { ["key1"]=> int(894) ["key2"]=> string(4) "that" } [2]=> array(2) { ["key1"]=> int(23) ["key2"]=> string(4) "this" } }  

如果我的多維數組中也有key值呢?

  1. <?php 
  2. //有一個多維數組 
  3. $a = array
  4.   123 => array('key1'=>940, 'key2'=>'blah'), 
  5.   349 => array('key1'=>23, 'key2'=>'this'), 
  6.   43 => array('key1'=>894, 'key2'=>'that'
  7. ); 
  8. //那么怎么對key1或者key2進行排序呢,這里就需要使用到usort($arr, 'myfunction')函數了,它的作用是對$arr使用我們自定義的方法進行排序,具體使用方法可以查看手冊 
  9. //1.對key1的值進行排序 
  10. function asc_key1_sort($x$y) { 
  11.   //可以輸出一下看看是怎么比較的 
  12.   echo 'Iteration:'.$x['key1'].' vs '.$y['key1']; 
  13.   if($x['key1'] > $y['key1']) { 
  14.     echo 'true<br/>'
  15.     return true; 
  16.   }elseif($x['key1'] < $y['key1']) { 
  17.     echo 'false<br/>'
  18.     return false; 
  19.   }else { 
  20.     echo '0'
  21.     return 0; 
  22.   } 
  23. //進行排序 
  24. usort($a'asc_key1_sort'); 
  25. var_dump($a); 
  26. //2.對key2字符進行排序 
  27. function asc_key2_sort($x$y) { 
  28.   //可以使用strcasecmp()函數進行排序 
  29.   echo 'Iteration:'.$x['key2'].' vs '.$y['key2'].'<br/>'
  30.   return strcasecmp($x['key2'], $y['key2']); 
  31. //Vevb.com 
  32. //進行排序 
  33. usort($a'asc_key2_sort'); 
  34. var_dump($a); 
  35. ?> 

運行結果:

  1. Iteration:23 vs 940false 
  2. Iteration:894 vs 23true 
  3. Iteration:940 vs 23true 
  4. Iteration:894 vs 940false 
  5. array(3) { [0]=> array(2) { ["key1"]=> int(23) ["key2"]=> string(4) "this" } [1]=> array(2) { ["key1"]=> int(894) ["key2"]=> string(4) "that" } [2]=> array(2) { ["key1"]=> int(940) ["key2"]=> string(4) "blah" } } Iteration:that vs this 
  6. Iteration:blah vs that 
  7. array(3) { [0]=> array(2) { ["key1"]=> int(940) ["key2"]=> string(4) "blah" } [1]=> array(2) { ["key1"]=> int(894) ["key2"]=> string(4) "that" } [2]=> array(2) { ["key1"]=> int(23) ["key2"]=> string(4) "this" } }  

這樣的排序結果不會保留123,349,43。這時候只要把usort()換成uasort就好啦!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久亚洲电影天堂| 成人av在线天堂| 欧美理论电影在线观看| 亚洲成人精品视频在线观看| 国产成人精品久久二区二区| 亚洲精品色婷婷福利天堂| 欧美日韩国产999| 亚洲伊人久久大香线蕉av| 亚洲精品狠狠操| 中国人与牲禽动交精品| 26uuu另类亚洲欧美日本老年| 国产成人av在线播放| 亚洲国产成人爱av在线播放| 国产丝袜一区视频在线观看| 久久夜色精品亚洲噜噜国产mv| 国产精品久久久久久av福利软件| 日本一区二区在线播放| 91极品女神在线| 久久国产精品久久久久久久久久| 久热在线中文字幕色999舞| 亚洲人成在线免费观看| 激情久久av一区av二区av三区| 国产精品成人观看视频国产奇米| 国产999精品| 九色91av视频| 欧美成人激情在线| 亚洲级视频在线观看免费1级| 一本一道久久a久久精品逆3p| 精品国产乱码久久久久久婷婷| 色先锋久久影院av| 欧美国产日韩一区二区| 欧美国产乱视频| 日产日韩在线亚洲欧美| 国产精选久久久久久| 一本色道久久综合亚洲精品小说| 亚洲精品电影在线| 亚洲精品www久久久久久广东| 亚洲激情中文字幕| 久久九九有精品国产23| 成人在线小视频| 国内精品在线一区| 亚洲精品一区中文字幕乱码| 91视频88av| 国产91精品网站| 亚洲精品免费av| 精品人伦一区二区三区蜜桃网站| 国产国语videosex另类| 91在线精品播放| 欧美日韩午夜剧场| 国产成人在线视频| 热99精品只有里视频精品| 欧洲成人在线观看| 久久久欧美一区二区| 98午夜经典影视| 欧美在线视频播放| 久久久久久久久国产精品| 亚洲自拍偷拍福利| 亚洲一区二区三区777| 国产成人91久久精品| 欧美做受高潮电影o| 精品一区二区电影| 538国产精品一区二区在线| 精品久久久久久久久久久| 91精品国产乱码久久久久久蜜臀| 亚洲欧美另类在线观看| 亚洲精品日韩在线| 亚洲第一中文字幕| 亚洲国语精品自产拍在线观看| 夜色77av精品影院| 中文字幕精品www乱入免费视频| 最新中文字幕亚洲| 精品少妇v888av| 国产精品第一页在线| 色婷婷av一区二区三区久久| 久久精品影视伊人网| 欧美亚洲视频在线看网址| 欧美日韩亚洲一区二区| 国产精品日韩久久久久| 国产日韩欧美影视| 91亚洲精品久久久久久久久久久久| 97免费视频在线播放| 亚洲女性裸体视频| 98精品在线视频| 亚洲美女av在线播放| 国产欧美在线播放| 亚洲精品国产精品国自产观看浪潮| 欧美在线播放视频| 中文字幕av一区二区三区谷原希美| 久久久久中文字幕2018| 色综合久久中文字幕综合网小说| 中文字幕一精品亚洲无线一区| 亚洲欧美日韩国产中文专区| 色狠狠av一区二区三区香蕉蜜桃| 国产精品日日做人人爱| 欧美自拍大量在线观看| 亚洲国产欧美日韩精品| 一区二区三区视频免费在线观看| 57pao成人永久免费视频| 亚洲老头同性xxxxx| 黑丝美女久久久| 国产欧美一区二区白浆黑人| 蜜臀久久99精品久久久久久宅男| 欧美日韩国产一区中文午夜| 精品久久国产精品| 国产成人在线一区二区| 欧美香蕉大胸在线视频观看| 色小说视频一区| 日韩在线视频线视频免费网站| 国产精品电影久久久久电影网| 国产精品18久久久久久首页狼| 欧美乱大交xxxxx另类电影| 怡红院精品视频| 欧美性视频在线| 精品亚洲男同gayvideo网站| 日韩在线视频播放| 久久亚洲精品一区二区| 国产一区二区三区在线免费观看| 久久久久久久久国产精品| 国产激情综合五月久久| 亚洲国产美女精品久久久久∴| 91美女片黄在线观| 国产伊人精品在线| 中文字幕久久久| 久久99视频精品| 成人97在线观看视频| 亚洲国产女人aaa毛片在线| 欧美成人精品xxx| 国产成人精品网站| 青青草99啪国产免费| 亚洲精品久久久久久久久久久| 精品成人国产在线观看男人呻吟| 日本亚洲精品在线观看| 国产免费一区二区三区在线能观看| 精品国产一区二区三区久久狼5月| 中文字幕日韩精品有码视频| 国产美女久久精品香蕉69| 日本一区二区三区在线播放| 91国产美女视频| 国产欧美韩国高清| 日韩一中文字幕| 欧美天堂在线观看| 色系列之999| 亚洲一区二区三区在线视频| 亚洲自拍偷拍福利| 国产美女直播视频一区| 国产精品一区二区三区免费视频| 国产精品美女久久久久av超清| 国产精品美女www爽爽爽视频| 日韩电影在线观看中文字幕| 在线观看亚洲区| 国产精品欧美激情| 欧美日韩国产一区中文午夜| 狠狠操狠狠色综合网| 亚洲高清久久网| 日韩在线观看高清| 中文字幕日韩精品有码视频| 日韩欧美在线观看视频| 一区二区三区四区在线观看视频| 中文字幕欧美日韩va免费视频| 午夜精品一区二区三区在线视频| 日韩中文字幕在线观看| 久久久久久久激情视频| 亚洲一区二区三区视频| 国产精品网站视频|