您好,欢迎访问一九零五行业门户网

PHP实现多维数组排序算法有哪些方式

这次给大家带来php实现多维数组排序算法有哪些方式,php实现多维数组排序算法的注意事项有哪些,下面就是实战案例,一起来看一下。
突然想起了一道面试题,把一个多维数组排序。
例:
<?php //有一个多维数组 $a = array( array('key1'=>940, 'key2'=>'blah'),   array('key1'=>23, 'key2'=>'this'),   array('key1'=>894, 'key2'=>'that') ); //那么怎么对key1或者key2进行排序呢,这里就需要使用到usort($arr, 'myfunction')函数了,它的作用是对$arr使用我们自定义的方法进行排序,具体使用方法可以查看手册 //1.对key1的值进行排序 function asc_key1_sort($x, $y) {   //可以输出一下看看是怎么比较的   echo 'iteration:'.$x['key1'].' vs '.$y['key1'];   if($x['key1'] > $y['key1']) {     echo 'true<br/>';     return true;   }elseif($x['key1']
运行结果:
iteration:23 vs 940false iteration:894 vs 23true iteration:940 vs 23true iteration:894 vs 940false 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 iteration:blah vs that 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值呢?
<?php //有一个多维数组 $a = array( 123 => array('key1'=>940, 'key2'=>'blah'),   349 => array('key1'=>23, 'key2'=>'this'),   43 => array('key1'=>894, 'key2'=>'that') ); //那么怎么对key1或者key2进行排序呢,这里就需要使用到usort($arr, 'myfunction')函数了,它的作用是对$arr使用我们自定义的方法进行排序,具体使用方法可以查看手册 //1.对key1的值进行排序 function asc_key1_sort($x, $y) {   //可以输出一下看看是怎么比较的   echo 'iteration:'.$x['key1'].' vs '.$y['key1'];   if($x['key1'] > $y['key1']) {     echo 'true<br/>';     return true;   }elseif($x['key1']
运行结果:
iteration:23 vs 940false iteration:894 vs 23true iteration:940 vs 23true iteration:894 vs 940false 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 iteration:blah vs that 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就好啦!
相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
推荐阅读:
php应用容器化与部署使用详解
pdo对mysql数据库增删改查操作类步骤详解
以上就是php实现多维数组排序算法有哪些方式的详细内容。
其它类似信息

推荐信息