这次给大家带来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实现多维数组排序算法有哪些方式的详细内容。