
正文
php数据排序函数 php数据排序函数是什么
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
PHP数组排序函数合集 以及它们之间的联系分析
下边提到的几个数组函数的排序有一些共性 数组被作为排序函数的参数 排序以后 数组本身就发生了改变 函数的返回值为bool类型 函数名中出现单a表示association 含义为 在按值排序的过程中 保持key=value的对应关系不变 函数名中出现单k表示key 含义为 在按值排序的过程中按照数组key而不是数组的值排序 函数名中出现单r的表示reverse 含义为 按照跟不加r的相反的顺序排列 函数名中出现单u的表示user defined 含义为 使用用户自定义函数排序 如果函数的逻辑是参数 参数 返回负数 则按照升序排列(p 小 返负升) sort函数升序排序
复制代码 代码如下: bool sort ( array $array [ int $sort_flags= SORT_REGULAR ] ) ?php $fruits = array("lemon" "orange" "banana" "apple"); sort($fruits); var_dump($fruits); ? 结果 array = string apple (length= ) = string banana (length= ) = string lemon (length= ) = string orange (length= )
rsort降序排列
复制代码 代码如下: ?php $fruits = array("lemon" "orange" "banana" "apple"); rsort($fruits); var_dump($fruits); ? 结果 array = string orange (length= ) = string lemon (length= ) = string banana (length= ) = string apple (length= )
asort按照二维数组值的升序排列(保持key=value的关联关系)
复制代码 代码如下: ?php $fruits = array("d" = "lemon" "a" = "orange" "b" = "banana" "c" = "apple"); asort($fruits); var_dump($fruits); ? 结果 array c = string apple (length= ) b = string banana (length= ) d = string lemon (length= ) a = string orange (length= )
arsort按照二维数组值的降序排列(保持key=value的关联关系)
复制代码 代码如下: ?php $fruits = array("d" = "lemon" "a" = "orange" "b" = "banana" "c" = "apple"); arsort($fruits); var_dump($fruits); ? 结果 array a = string orange (length= ) d = string lemon (length= ) b = string banana (length= ) c = string apple (length= )
ksort按照数组的key升序排列
复制代码 代码如下: ?php $fruits = array("d"="lemon" "a"="orange" "b"="banana" "c"="apple"); ksort($fruits); var_dump($fruits); ? 结果 array a = string orange (length= ) b = string banana (length= ) c = string apple (length= ) d = string lemon (length= )
krsort按照数组key的降序排列
复制代码 代码如下: ?php $fruits = array("d"="lemon" "a"="orange" "b"="banana" "c"="apple"); krsort($fruits); var_dump($fruits); ? array d = string lemon (length= ) c = string apple (length= ) b = string banana (length= ) a = string orange (length= )
usort函数按照用户自定义的函数排序
复制代码 代码如下: ?php function cmp($a $b) { if ($a == $b) { return ; } return ($a $b) ? : ; } $a = array( ); usort($a "cmp"); var_dump($a); ?
结果 array = int = int = int = int = int uksort使用自定义函数按照数组的key排序
复制代码 代码如下: ?php function cmp($a $b) { $a = preg_replace( @^(a|an|the) @ $a); $b = preg_replace( @^(a|an|the) @ $b); return strcasecmp($a $b); } $a = array("John" = "the Earth" = "an apple" = "a banana" = ); uksort($a "cmp"); var_dump($a); ?
结果 array an apple = int a banana = int the Earth = int John = int uasort将数组用自定义函数按照value排序 保持索引关系不变
复制代码 代码如下: ?php // Comparison function function cmp($a $b) { if ($a == $b) { return ; } return ($a $b) ? : ; } // Array to be sorted $array = array( a = b = c = d = e = f = g = h = ); var_dump($array); // Sort and print the resulting array uasort($array cmp ); var_dump($array); ?
结果 array a = int b = int c = int d = int e = int f = int g = int h = int array d = int h = int c = int e = int g = int a = int f = int b = int array_multisort排序多个数组或多维数组
复制代码 代码如下: ?php $ar = array( array(" " "a") array( " " ) ); array_multisort($ar[ ] SORT_ASC SORT_STRING $ar[ ] SORT_NUMERIC SORT_DESC); var_dump($ar); ?
结果 array = array = string (length= ) = int = int = int = string a (length= ) = array = int = int = string (length= ) = int = int //说明 上例中 $ar数组优先按照$ar[ ]的字符串值升序排列 如果字符串值相等 再按照$ar[ ]数组的数字值降序排列 array_multisort函数的任意一个位置的参数如果是数组 表示排序时用的值 如果有多个数组参数 优先按照前边的数组值进行排序 如果是常量 例如 SORT_ASC SORT_DESC SORT_REGULAR SORT_NUMERIC SORT_STRING 表示排序方法(数组取值前优先) ========================================================================================== PHP二维数组排序函数 PHP一维数组的排序可以用sort() asort() arsort()等函数 但是PHP二维数组的排序需要自定义 以下函数是对一个给定的二维数组按照指定的键值进行排序 先看函数定义
复制代码 代码如下: function array_sort($arr $keys $type= asc ){ $keysvalue = $new_array = array(); foreach ($arr as $k=$v){ $keysvalue[$k] = $v[$keys]; } if($type == asc ){ asort($keysvalue); }else{ arsort($keysvalue); } reset($keysvalue); foreach ($keysvalue as $k=$v){ $new_array[$k] = $arr[$k]; } return $new_array; }
它可以对二维数组按照指定的键值进行排序 也可以指定升序或降序排序法(默认为升序) 用法示例
复制代码 代码如下: $array = array( array( name = 手机 brand = 诺基亚 price = ) array( name = 笔记本电脑 brand = lenovo price = ) array( name = 剃须刀 brand = 飞利浦 price = ) array( name = 跑步机 brand = 三和松石 price = ) array( name = 手表 brand = 卡西欧 price = ) array( name = 液晶电视 brand = 索尼 price = ) array( name = 激光打印机 brand = 惠普 price = ) ); $ShoppingList = array_sort($array price ); print_r($ShoppingList); lishixinzhi/Article/program/PHP/201311/21145
相关问答
Q1: PHP函数sort()如何实现数组排序
比如:?php$people=array('name','sex','nation','birth');
foreach ($people as $mychrs)
echo $mychrs." ";
sort($people);echo "br/---排序后---br/";foreach ($people as $mychrs)
echo $mychrs." ";?升序排序后的数组元素显示为 birth name nation sex,当然,PHP函数sort()是区分字母大小写的(字母从大到小的顺序是:A…Z…a…z)
Sort()函数还具有第二参数,用来说明升序的规则是用来比较数字还是字符串的。比如:?phpecho "---按数字升序排序---br/";$num2=array('26','3',);
sort($num2,SORT_NUMERIC);
foreach ($num2 as $mychrs)
echo $mychrs." ";echo "br/---按字符升序排序---br/";$num3=array('26','3');
sort($num3,SORT_STRING);
foreach ($num3 as $mychrs)
echo $mychrs." ";?SORT_NUMERIC和SORT_STRING用来声明按数字或字符的升序排列。如果按照数字升序排列是:3,26;但如果按照字符升序排列则是:26,3了。
Q2: PHP实现的自定义数组排序函数与排序类示例
本文实例讲述php数据排序函数了PHP实现的自定义数组排序函数与排序类。分享给大家供大家参考php数据排序函数,具体如下:
/*
*
二维数组自定义排序函数
*
uasort($arr,function_name)
*
**/
$arr
=
array(
array('a'=1,'b'='c'),
array('a'=4,'b'='a'),
array('a'=5,'b'='g'),
array('a'=7,'b'='f'),
array('a'=6,'b'='e')
);
function
compare_arr($x,$y){
if($x['b']$y['b']){
return
-1;
}else
if($x['b']$y['b']){
return
1;
}else{
return
0;
}
}
uasort($arr,'compare_arr');
foreach($arr
as
$a){
echo
$a['a'].'='.$a['b'].'br/';
}
手册里的自定义排序类:
class
multiSort
{
var
$key;
//key
in
your
array
//排序函数
参数依次是
数组
待排列索引
排序类型
function
run
($myarray,
$key_to_sort,
$type_of_sort
=
'')
{
$this-key
=
$key_to_sort;
if
($type_of_sort
==
'desc')
uasort($myarray,
array($this,
'myreverse_compare'));
else
uasort($myarray,
array($this,
'mycompare'));
return
$myarray;
}
//正序
function
mycompare($x,
$y)
{
if
(
$x[$this-key]
==
$y[$this-key]
)
return
0;
else
if
(
$x[$this-key]
$y[$this-key]
)
return
-1;
else
return
1;
}
//逆序
function
myreverse_compare($x,
$y)
{
if
(
$x[$this-key]
==
$y[$this-key]
)
return
0;
else
if
(
$x[$this-key]
$y[$this-key]
)
return
-1;
else
return
1;
}
}
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技巧大全》、《php排序算法总结》、《php字符串(string)用法总结》、《PHP针对XML文件操作技巧总结》、《PHP错误与异常处理方法总结》、《PHP运算与运算符用法总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
php数据排序函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php数据排序函数是什么、php数据排序函数的信息别忘了在本站进行查找喔。








