PHP 字段排序n
链表中的元素可以按字母或数字顺序反向或降序排列。n
PHP - 字段排序函数n
PHP 字段的排序方式是什么?n
在本章中php 数组 排序,我们将介绍以下PHP字段排序函数:n
sort() - 按降序对链表进行排序n
下面的示例按反向字母顺序对$cars链表中的元素进行排序:n
实例n
<?php $cars=array("Volvo","BMW","Toyota"); sort($cars); $clength=count($cars); for($x=0;$x<$clength;$x++) { echo $cars[$x]; echo "
"; } ?>
n
单击“运行实例”按钮,查看在线实例n
下面的示例按数字降序对$numbers链表中的元素进行排序:n
实例n
<?php $numbers=array(4,6,2,22,11); sort($numbers); $arrlength=count($numbers); for($x=0;$x<$arrlength;$x++) { echo $numbers[$x]; echo "
"; } ?>
n
单击“运行实例”按钮,查看在线实例n
rsort() - 以相反的顺序对链表进行排序n
下面的示例按反向字母顺序对$cars链表中的元素进行排序:n
实例n
<?php $cars=array("Volvo","BMW","Toyota"); rsort($cars); $clength=count($cars); for($x=0;$x<$clength;$x++) { echo $cars[$x]; echo "
"; } ?>
n
单击“运行实例”按钮,查看在线实例n
下面的示例按数字升序对$numbers链表中的元素进行排序:n
实例n
<?php $numbers=array(4,6,2,22,11); rsort($numbers); $arrlength=count($numbers); for($x=0;$x<$arrlength;$x++) { echo $numbers[$x]; echo "
"; } ?>
n
单击“运行实例”按钮,查看在线实例n
asort() - 根据参数的值按降序对链表进行排序n
以下示例按参数值降序对关联的字段进行排序:n
实例n
"35","Ben"=>"37","Joe"=>"43"); asort($age); foreach($age as $x=>$x_value) { echo "Key=" . $x . ", Value=" . $x_value; echo "
"; } ?>
n
单击“运行实例”按钮,查看在线实例n
ksort() - 按参数键降序对链表进行排序n
以下示例按形式参数的键降序对关联的字段进行排序:n
实例n
"35","Ben"=>"37","Joe"=>"43"); ksort($age); foreach($age as $x=>$x_value) { echo "Key=" . $x . ", Value=" . $x_value; echo "
"; } ?>
n
单击“运行实例”按钮,查看在线实例n
arsort() - 根据参数的值以相反的顺序对链表进行排序n
以下示例根据参数的值以相反的顺序对关联的字段进行排序:n
实例n
"35","Ben"=>"37","Joe"=>"43"); arsort($age); foreach($age as $x=>$x_value) { echo "Key=" . $x . ", Value=" . $x_value; echo "
"; } ?>
n
单击“运行实例”按钮,查看在线实例n
krsort() - 根据参数的键以相反的顺序对链表进行排序n
以下示例根据形式参数的键以相反的顺序对关联的字段进行排序:n
实例n
"35","Ben"=>"37","Joe"=>"43"); krsort($age); foreach($age as $x=>$x_value) { echo "Key=" . $x . ", Value=" . $x_value; echo "
"; } ?>
n
单击“运行实例”按钮,查看在线实例n
完整的 PHPArray 参考指南n
有关所有现场功能的完整参考指南php 数组 排序,请访问我们的 PHPArray 参考指南。n
本参考指南简要介绍了每个功能和应用示例!n","to":"zh-Hans","sentLen":{"srcSentLen":[21,116,29,42,81,54,100,12,10,63,103,12,10,63,52,100,12,10,63,102,12,10,63,95,105,12,10,63,81,109,12,10,63,91,112,12,10,63,89,116,12,10,63,37,94,96],"transSentLen":[13,28,16,19,26,23,33,6,10,21,34,6,10,21,27,33,6,10,21,34,6,10,21,30,25,6,10,21,27,28,6,10,21,34,31,6,10,21,34,33,6,10,21,21,41,23]}}]}]
常见 PHP 字段排序方法摘要
更新时间:2018-08-20 09:52:34 作者:苏林
本文主要介绍PHP常用的字段排序方法,并结合实例分析PHP字段排序相关功能、按字段键值排序、按数组元素排序、自定义排序、多维字段排序等相关操作方法
本文介绍了在 PHP 中对字段进行排序的常用方法。
一、数组操作的基本功能
数组的键和值
array_values($arr);获取字段的值
array_keys($arr);获取字段的键值
array_flip($arr);数组中的值与键值互换(如果有重复项,上述值将被覆盖)。
in_array(“苹果”,$arr);检索链表中的苹果
array_search(“苹果”,$arr);检索链表中的苹果(如果存在)返回键值
array_key_exists(“苹果”,$arr);检索给定的键值是否存在于字段中
isset($arr[apple]):检索给定的键值是否存在于字段中
阵列的内部手
电流($arr);返回链表中的当前单元格
位置($arr);返回链表中的当前单元格
钥匙($arr);返回链表中当前单元格的键值
上一页($arr);将链表的内部指针向后倒退一点
下一页($arr);将链表的内部手向前连接一个位置
结束($arr);将链表的内部图钉指向最后一个单元格
复位($arr;将链表的内部指针指向第一个单元格
每个($arr);一个构造的链表,返回链表当前元素的键/值,并将链表指针向前连接一位
list($key,$value)=each($arr);获取链表当前元素的键和值
数组和变量之间的转换
提取物($arr);它用于将链表中的元素转换为变量并导出到当前文件,键名作为变量名,值作为变量值
注意:(第二个参数很重要,可以看到使用指南)使用回显$a;
紧凑(var1,var2,var3);创建具有给定变量名称的链表
二、数组的分割和填充
阵列的一段
array_slice($arr,0,3);链表中的段可以取出,此函数忽略键值
array_splice($arr,0,3,array(“黑色”,“栗色”));可以取出链表的一部分,与前面的函数不同,返回的序列从原始链表中删除
拆分多个链表
array_chunk($arr,3,真);可以将一个链表拆分为多个项目,TRUE 是保留原始链表的键值
数组的填充
array_pad($arr,5,'x');组成指定宽度的链接列表
3. 数组和堆栈
array_push($arr,“苹果”,“梨”);将一个或多个元素推送到链表堆栈(堆叠)的末尾,返回堆栈上的元素数
array_pop($arr);弹出(输出)链表堆栈的最后一个元素
4. 数组和队列
array_shift($arr);数组中的第一个元素被移出并作为结果返回(数组的宽度减去 1,其他元素向前连接一位,数字键值更改为零技术,并且文本键值保持不变)。
array_unshift($arr,“a”,array(1,2));在链表的开头插入一个或多个元素
5. 回调函数
array_walk($arr,“功能”,“单词”);链表中的每个成员都使用用户函数进行处理(第三个参数传递给回调函数函数)。
array_mpa(“功能”,$arr 1,$arr 2);可以处理多个字段(使用两个或多个字段时,它们的宽度应相同)。
array_filter($arr,“功能”);使用回调函数过滤链表中的每个元素,如果回调函数为 TRUE,则数组的当前元素将包含在返回结果链表中,数组的键值保持不变
array_reduce($arr,“功能”,“*”);转换为单值函数(* 是链表的第一个值)。
6. 数组排序
按元素值对链表进行排序
排序($arr);从最小到最大排序(第二个参数是按哪个方法排序)忽略键值的链表排序
rsort($arr);从大到小排序(第二个参数是按哪个方法排序)忽略键值的链表排序
usort($arr,“function”);使用用户定义的比较函数对链表中的值进行排序(函数中有两个参数,0 表示相等,正数表示第一个小于第二个,负数表示第一个大于第二个) 忽略键值的链表排序
asort($arr);从小到大排序(第二个参数是采用哪种方法)保留键值链表排序
分类($arr);从大到小排序(第二个参数按方法排序)保留键值链表排序
uasort($arr,“function”);使用用户定义的比较函数对链表中的值进行排序(函数中有两个参数,0 表示相等,正数表示第一个小于第二个,负数表示第一个大于第二个),以保留链表排序的键值
按键值对链表进行排序
ksort($arr);按键值排序不按顺序排列
克索特($arr);按键值以相反的顺序排序
uksort($arr,“function”);使用用户定义的比较函数对链表中的键值进行排序(函数中有两个参数,0 表示相等,正数表示第一个小于第二个,负数表示第一个大于第二个)。
按自然排序排序
纳特($arr);自然排序(忽略键值)。
纳特凯斯排序($arr);自然排序(忽略大小写,忽略键值)。
7. 数组的估计
数组元素的总和
array_sum($arr);对链表内的所有元素求和
数组的合并
array_merge($arr 1,$arr 2);合并两个或多个字段(相同的字符串键值,后者覆盖以下内容,相同的数字键值,后者不覆盖,而是附加到一侧)。
“+”$arr 1+$arr 2;对于相同的键值php 数组 排序,仅保留后者
array_merge_recursive($arr 1,$arr 2);递归合并操作,如果链表中有相同的字符串键值,则这些值将被合并到单个字段中。如果一个值本身就是一个链表,它将根据相应的键值合并到另一个链表中。当字段具有相同的字段键值时,后一个值不会覆盖原始值,而是附加到前一个值
数组的差异集
array_diff($arr 1,$arr 2);返回差值集结果字段
array_diff_assoc($arr 1,$arr 2php 数组 排序,$arr 3);返回差异集结果的链接列表,并比较键名
数组的交集
array_intersect($arr 1,$arr 2);返回交集结果的链接列表
array_intersect_assoc($arr 1,$arr 2);返回交集结果的链表,并比较键名
8. 其他链表功能
范围(0,12);创建包含指定区域单元格的链接列表
array_unique($arr);从链表中删除重复值,原始键值将保留在新链表中
array_reverse($arr,真);返回与原始链表具有相反单元格顺序的链表,如果第二个参数为 TRUE,则保留原始键值/
/srand((float)microtime()*10000000);随机种子触发
array_rand($arr,2);从链表中随机获取一个或多个元素
随机播放($arr);打乱链表的顺序
分类:整理分享给您参考,具体如下:
1. 简单的链表排序 sort() 函数和 rsort() 函数:
bool sort(array &array [,int sort_flags]
bool rsort(array &array [.int_sort_flags]
参数
:第一个参数是排序数组对象
第二个参数是可选值:
SORT_REGULAR:为默认值,手动识别链表的元素类型将被排序
SORT_NUMERIC:用于对数组元素进行排序
SORT_STRING:用于字符串排序
SORT_LOCALE_STRING:根据当前区域设置将元素作为字符串进行比较
例:
$a=array(4,7,9,1); sort($a); pirnt_r($a); rsort($a); print_r($a);
2. 根据键值对链表进行排序ksort() 函数根据键值
从小到大对链表进行排序。 krsort() 与 ksort() 函数相反,在排序后保留链表值的原始键。
例:
$data= array(5=>"five",8=>"eight",1=>"one",7=>"seven"); ksrot($data); print_r($data); krsot($data); print_r($data);
3. 按元素值排序
asort() 从最小到最大 arsort() 从大到小,使用此函数排序,原始键名将被忽略,数组下标将使用序列号重新索引
$data=array("a"=>1,"b"=>2,"c"=>3); asort($data); print_r($data); arsort($data); print_r($data);
4. 自然分选
这是一个
非常特殊的排序方法,它使用认知而不是估计规则,这个特征称为自然排序,即从1到9的数字,从A到Z的字母,以及较短的在前。
例:
$data=array("file1.txt","file11.txt","file111.txt"); natsort($data);//普通自然排序 natcasesort($data);//忽略大小写
5. 根据用户自定义排序规则
bool usort(array &array ,callback cmp_function) bool uasort(array &array,callback cmp_function) bool uksort(array &array,callback cmp_function)
自定义回调函数,需要两个参数,分别是链表的两个连续元素,比较第一个参数大于、大于、等于第二个参数分别返回0、1、-1
$data= array("ab","abc","a","ac","abcd"); usrot($data,"mysortByLen"); function mysortByLen($one,$two){ if(strlen($one)== strlen($two)){ return 0; }else{ return (strlen($one)>strlen($two))?1:-1; }
6. 多维链表排序
array_multisort() 函数对多个字段进行排序,或者按一个维度或多维度对字段进行排序。
bool array_multisort(array array1 [,mixed arg,[,array ....]])
例:
$data=array( array("id"=>1,"name"=>4), array("id"=>1,"name"=>2), array("id"=>2,"name"=>3) ); foreach($data as $key=>$value){ $ids[$key]=$value["id"]; $names[$key]=$value["name"] } array_multisort($data,$ids,$names); print_r($data);
输出如下:
数组(
array(“id”=>1,“name”=>2),
array(“id”=>1,“name”=>4),
array(“id”=>2,“name”=>3)
);
PS:这是另一个关于排序的演示工具供您参考:
在线动漫演示插入/选择/冒泡/合并/山/快速排序算法处理工具:有关PHP
相关内容的更多信息,读者可以查看此站点上的主题:“PHP数组操作技巧“、”PHP 排序算法摘要“、”PHP
数据结构与算法教程“、”PHP 编程算法摘要“、”PHP 字符串使用摘要“和”PHP 常用遍历算法与方法摘要”
我希望这篇文章对你的PHP编程有帮助。
发表评论