php--多维数组排序函数array_multisort
2016-08-06 19:52
921 查看
功能:对多维数组进行排序,类似于sql中的order by 作用。
用途:将数据库中的想要的数据全部取出,然后做类似于order by 的动作,(可能比数据库排序效率高点,不太了解)
函数使用格式: array_multisort($arr1,[$sort_order,$sort_type],[$arr2,...]);
参数含义:
$arr1,$arr2为待排序的数组;
$srot_order为排序的顺序,SORT_ASC 或者SORT_DESC中二选一,默认为SORT_ASC;
$sort_type为排序的类型SORT_REGULAR、SORT_NUMERIC、SORT_STRING。
$arr1为主要排序的数组,在此数组中有重复值时,才按照后边数组排序,
其中:
SORT_REGULAR 表示正常排序,即不改变原来的数据类型,数字就按大小排,字符就按 ASCII排序,一般情况字符类型在前,数字类型在后,默认为此类型,
SORT_NUMERIC按数字大小排序,
SORT_STRING按字符排序,从左到右按ASCII比较,即'10'<'a'、'ADC'<'AoE'、'100'<'11',
注:
$arr1 、$arr2 ...每个都可以指定自己的排序顺序和类型,
$arr1、$arr2... 可以看作数据表中的一个字段列,排序顺序为从左到右,左边数组中值相同时,才按下个数组排序。
使用案列:
另外,利用foreach变量,自定义函数也可实现此类排序。
array_multisort 官方使用文档:
用途:将数据库中的想要的数据全部取出,然后做类似于order by 的动作,(可能比数据库排序效率高点,不太了解)
函数使用格式: array_multisort($arr1,[$sort_order,$sort_type],[$arr2,...]);
参数含义:
$arr1,$arr2为待排序的数组;
$srot_order为排序的顺序,SORT_ASC 或者SORT_DESC中二选一,默认为SORT_ASC;
$sort_type为排序的类型SORT_REGULAR、SORT_NUMERIC、SORT_STRING。
$arr1为主要排序的数组,在此数组中有重复值时,才按照后边数组排序,
其中:
SORT_REGULAR 表示正常排序,即不改变原来的数据类型,数字就按大小排,字符就按 ASCII排序,一般情况字符类型在前,数字类型在后,默认为此类型,
SORT_NUMERIC按数字大小排序,
SORT_STRING按字符排序,从左到右按ASCII比较,即'10'<'a'、'ADC'<'AoE'、'100'<'11',
注:
$arr1 、$arr2 ...每个都可以指定自己的排序顺序和类型,
$arr1、$arr2... 可以看作数据表中的一个字段列,排序顺序为从左到右,左边数组中值相同时,才按下个数组排序。
使用案列:
<pre name="code" class="php">//自定义函数,处理数据,以便使用array_multisort 排序;
function my_sort($arrays,$sort_key,$sort_order=SORT_ASC,$sort_type=SORT_NUMERIC ){ if(is_array($arrays)){ foreach ($arrays as $array){ if(is_array($array)){ $key_arrays[] = $array[$sort_key]; }else{ return false; } } }else{ return false; } array_multisort($key_arrays,$sort_order,$sort_type,$arrays); return $arrays; } $person = array(
array('id'=>1,'name'=>'fj','weight'=>100,'height'=>180), array('id'=>2,'name'=>'tom','weight'=>53,'height'=>150), array('id'=>3,'name'=>'jerry','weight'=>120,'height'=>156), array('id'=>4,'name'=>'bill','weight'=>110,'height'=>190), array('id'=>5,'name'=>'linken','weight'=>80,'height'=>200), array('id'=>6,'name'=>'madana','weight'=>95,'height'=>110), array('id'=>7,'name'=>'jordan','weight'=>70,'height'=>170) ); //排序前 var_dump($person); //按name排序 $person = my_sort($person,'name',SORT_ASC,SORT_STRING); //排序后 var_dump($person);
//按weight排序 $person = my_sort($person,'weight'); var_dump($person);
另外,利用foreach变量,自定义函数也可实现此类排序。
array_multisort 官方使用文档:
相关文章推荐
- php-Arrays 函数-array_multisort-对多个数组或多维数组进行排序
- PHP - Manual手册 - V. Array 数组函数 - array_multisort对多个数组或多维数组进行排序
- array_multisort()函数对多个数组或多维数组进行排序
- PHP数组排序函数array_multisort()函数详解(二)
- php 对多维数组排序array_multisort
- php中array_multisort对多维数组排序的方法
- PHP多维数组排序之array_multisort
- php array_multisort 多维数组排序
- PHP多维数组排序 array_multisort()
- PHP数组排序函数array_multisort()函数详解(一)
- php中的常用数组函数(八) 排序函数汇总(sort、rsort、usort、asort、uasort、arsort、ksort、uksort、krsort、natsort、natcasesort、array_multisort)
- array_multisort实现PHP多维数组排序
- PHP多维数组排序(array_multisort)
- array_multisort实现PHP多维数组排序示例讲解
- PHP使用array_multisort对多个数组或多维数组进行排序
- array_multisort实现PHP多维数组排序示例讲解
- PHP使用array_multisort对多个数组或多维数组进行排序
- php中array_multisort对多维数组排序的方法
- PHP数组排序函数array_multisort()函数详解
- array_multisort实现PHP多维数组排序示例讲解