PHP 数组(array)自定义排序
2017-02-04 20:36
465 查看
php提供的数组自定义排序函数
相关例子:
对三维数组进行排序
以对象作为回调函数对数组进行排序
将数组以另一个数组的顺序进行排序
uasort使用用户自定义的比较函数对数组中的值进行排序并保持索引关联 bool uasort(array &$array,callable $cmp_function) uksort()使用用户自定义的比较函数对数组中的键名进行排序 usort()使用用户自定义的比较函数对数组中的值进行排序
相关例子:
对三维数组进行排序
function cmp($a, $b){ return strcmp($a["fruit"], $b["fruit"]);} $fruits[0]["fruit"] = "lemons"; $fruits[1]["fruit"] = "apples"; $fruits[2]["fruit"] = "grapes"; usort($fruits, "cmp"); print_r($fruits); //输出结果: Array( [0] => Array([fruit] => apples) [1] => Array([fruit] => grapes) [2] => Array([fruit] => lemons))
以对象作为回调函数对数组进行排序
class Obj{ var $letter; function Obj($letter){ $this->letter = $letter; } //静态的 比较函数 static function cmp_obj($a,$b){ $a = strtolower($a -> name); $b = strtolower($b -> name); if($a == $b){ return 0; } return ($a > $b) ? 1: -1; } } $a[] = new TestObj("f"); $a[] = new TestObj("h"); $a[] = new TestObj("z"); usort($a, array("TestObj", "cmp_obj")); var_dump($a); //输出结果 array(3) { [0]=> object(TestObj)#1 (1) { ["name"]=> string(1) "f"} [1]=> object(TestObj)#2 (1) { ["name"]=> string(1) "h" } [2]=> object(TestObj)#3 (1) { ["name"]=> string(1) "z" } }
将数组以另一个数组的顺序进行排序
$arrayList = array("拜年","过年好","happy new year","鸡年","红包","QQ", "Logo","富贵双全","健康快乐","开工利"); $newYear = array( "鸡年","过年好","红包","QQ","Logo","拜年","happy new year", "开工利","富贵双全","健康快乐"); usort($newYear,function($a,$b) use($arrayList){ $indexB = array_search($b,$arrayList); $indexA = array_search($a,$arrayList); if($indexA == $indexB){ return 0; } return $indexA < $indexB ? -1 :1; }); var_dump($newYear); //输出结果: array(10) { [0]=>string(6) "拜年" [1]=>string(9) "过年好" [2]=>string(14) "happy new year" [3]=>string(6) "鸡年" [4]=>string(6) "红包" [5]=>string(2) "QQ" [6]=>string(4) "Logo" [7]=>string(12) "富贵双全" [8]=>string(12) "健康快乐" [9]=>string(9) "开工利" }
相关文章推荐
- php多维数组自定义排序 uasort()
- array_multisort实现PHP多维数组排序示例讲解
- php多维数组按用户自定义顺序排序uasort()
- PHP数组排序函数array_multisort()函数详解(二)
- php自定义数组排序
- array_multisort 对关联数组进行排序的问题 PHP
- php关于array_multisort多维数组排序的使用说明
- 对数组中的自定义的类型根据姓名,年龄排序(升序, 降序)sortedArrayUsingSelector
- php数组排序-自定义排序usort
- PHP多维数组排序(array_multisort)
- php-Arrays 函数-array_multisort-对多个数组或多维数组进行排序
- array_multisort实现PHP多维数组排序
- PHP实现的自定义数组排序函数与排序类示例
- php中array_multisort对多维数组排序的方法
- PHP usort 使用用户自定义的比较函数对数组中的值进行排序
- php 数组排序 array_multisort与uasort的区别
- OBjective-C:在可变数组NSMutableArray中添加相同对象后,进行自定义的排序方式输出
- PHP经验——数组自定义排序之多维数组排序
- Sorting Array Values in PHP(数组排序)
- php 数组排序 array_multisort与uasort的区别