您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

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

2024/6/1 6:38:25发布17次查看
这次给大家带来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实现多维数组排序算法有哪些方式的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product