随着PHP的快速发展,用它的人越来越多,在PHP数组学习摘录部分了解到最基本的PHP数组的建立和数组元素的显示。需要深入学习下PHP数组的相关操作。首先接触的就是PHP数组排序、降序的排序问题。

sort:本函数为 array 中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。

rsort:本函数对数组进行逆向排序(最高到最低)。 删除原有的键名而不仅是重新排序。

asort:对数组进行排序并保持索引关系

arsort:对数组进行逆向排序并保持索引关系

ksort:对数组按照键名排序,保留键名到数据的关联

krsort:对数组按照键名逆向排序,保留键名到数据的关联

natsort:对字母数字字符串进行排序并保持原有键/值的关联

natcasesort:同natsort排序算法,但不区分大小写字母排序

PHP 数组排序(sort)数字索引数组排序:

函数:sort(array, [sort type])

说明:sort()函数按升序对指定数组(第一个参数)进行排序。

sort函数第二参数作用为指定排序类型,是可选参数,可能的值为:

SORT_REGULAR: 默认值,不改变类型进行排序;

SORT_NUMERIC: 把值作为数字进行排序;

SORT_STRING: 把值作为字符串进行排序;

如数组中有4和”37″,按数字排序,4小于”37″;按字符串排序,4大于”37″;

$a = array(4,"37",3,100,0,-5);

sort($a);

for ($i=0; $i<6; ++$i){

echo $a[$i]." ";

}

echo "
";

sort($a,SORT_STRING);

for ($i=0; $i<6; ++$i){

echo $a[$i]." ";

}

echo "
";

?>

输出结果:

-5 0 3 4 37 100

-5 0 100 3 37 4

降序排序:rsort(array, [sort type])参数用法与sort函数相同。

关联数组排序:

函数:asort(array, [sort type])

说明:根据关联数组的元素值进行升序排序。参数使用见上面的sort函数。

函数:ksort(array, [sort type])

说明:根据关联数组的关键字进行升序排序。参数使用见上面的sort函数。

$a = array(

"good" => "bad",

"right" => "wrong",

"boy" => "girl");

echo "value sort
";

asort($a);

foreach($a as $key => $value){

echo "$key : $value
";

}

echo "
key sort
";

ksort($a);

foreach($a as $key => $value){

echo "$key : $value
";

}

?>

输出结果:

value sort

good : bad

boy : girl

right : wrong

key sort

boy : girl

good : bad

right : wrong

降序排序:

arsort(array, [sort type]) 与 asort对应

krsort(array, [sort type]) 与 ksort对应

快速创建数组的函数range()

比如range()函数可以快速创建从1到9的数字数组:

$numbers=range(1,9);

echo $numbers[1];

?>

当然,使用range(9,1)则创建了9到1的数字数组。同时,range()还可以创建从a到z 的字符数组:

$numbers=range(a,z);

foreach ($numbers as $mychrs)

echo $mychrs." ";

?>

使用字符数组时注意大小写,比如range(A,z)和range(a,Z)是不一样的。range()函数还具有第三个参数,该参数的作用是设定步长,比如range(1,9,3)创建的数组元素是:1、4、7。常见PHP数组排序一般数组中的各元素均以字符或数字表现的,所以可对数组元素进行升序排列,该功能函数为sort()。比如:

$people=array('name','sex','nation','birth');

foreach ($people as $mychrs)

echo $mychrs." ";

sort($people);

echo "
---排序后---
";

foreach ($people as $mychrs)

echo $mychrs." ";

?>

升序排序后的数组元素显示为 birth name nation sex,当然,sort()函数是区分字母大小写的(字母从大到小的顺序是:A…Z…a…z)

Sort()函数还具有第二参数,用来说明PHP数组排序升序的规则是用来比较数字还是字符串的。比如:

echo "---按数字升序排序---
";

$num2=array('26','3',);

sort($num2,SORT_NUMERIC);

foreach ($num2 as $mychrs)

echo $mychrs." ";

echo "
---按字符升序排序---
";

$num3=array('26','3');

sort($num3,SORT_STRING);

foreach ($num3 as $mychrs)

echo $mychrs." ";

?>

SORT_NUMERIC和SORT_STRING用来声明按数字或字符的升序排列。如果按照数字升序排列是:3,26;但如果按照字符升序排列则是:26,3了。PHP中除了升序函数以外,还有降序或称反向排列的函数,就是rsort()函数,比如:$num1=range(1,9);rsort($num1);这里其实就相当于range(9,1)。

php的数组排序方法,PHP 数组排序方法总结 推荐收藏相关推荐

  1. 使用定制的NSDictionary的方法,对NSArray进行排序(附:数组排序两种常见方法)

    NSArray中存放的是NSDictionary,可以使用策略的方法对NSDictionary进行定制,增加比较的方法.然后调用NSArray的sortUsingSelector方法对数组进行排序,这 ...

  2. OC中数组排序的3种方法

    总结OC中数组排序3种方法:sortedArrayUsingSelector:;sortedArrayUsingComparator:;sortedArrayUsingDescriptors: 大体上 ...

  3. Java黑皮书课后题第8章:*8.16(对二维数组排序)编写一个方法,使用下面的方法头对二维数组排序。这个方法首先按行排序,然后按列排序

    *8.16(对二维数组排序)编写一个方法,使用下面的方法头对二维数组排序.这个方法首先按行排序,然后按列排序 题目 题目描述 破题 代码 运行实例 题目 题目描述 *8.16(对二维数组排序)编写一个 ...

  4. 关于数组排序的三种方法

    每天笔记(7-29) 一.关于数组排序的三种方法 第一种,直接使用Arrays.sort()方法排序数组 public static void main(String[] args) {// 定义一个 ...

  5. JavaScript数组sort方法(数组排序)

    数组对象的sort方法可以按照一定的顺序把数组元素重新排列起来.通常情况下,都是按照字母顺序排列的. JavaScript代码 <script type="text/javascrip ...

  6. python中的魔法方法__new___Python魔法方法会调用new方法吗?

    Python中的sort()方法用于数组排序,本文以实例形式对此加以详细说明:一.基本形式列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可修 ...

  7. java 调用方法 数组_JAVA方法与数组

    一.JAVA的方法: 1.定义:a.java方法是语句的集合,它们在一起执行一个功能. b.方法是解决一类问题的步骤的有序组合. c.方法包含于类或对象中. d.方法在程序中被创建,在其他地方被引用. ...

  8. Go 学习笔记(34)— Go 方法声明、方法调用、方法值、方法表达式、切片对象方法、指针对象方法

    1. 方法声明 Go 语言的方法非常纯粹, 可以看作特殊类型的函数, 其显式地将对象实例或指针作为函数的第一个参数, 并且参数名可以自己指定, 而不强制要求一定是 this 或 self .这个对象实 ...

  9. ajax post的回调函数另一个方法,jQueryajax–post()方法 - 米扑博客

    jQuery ajax - post() 实例 请求 test.php 网页,忽略返回值: $.post("test.php"); 通过 AJAX POST 请求改变 div 元素 ...

  10. C++学习笔记24,方法重写与方法隐藏

    该博文仅用于交流学习.请慎用于不论什么商业用途.本博主保留对该博文的一切权利. 博主博客:http://blog.csdn.net/qq844352155 转载请注明出处: 方法重写.是指在子类中又一 ...

最新文章

  1. C#中Socket多线程编程实例
  2. 一般屏幕的3D模型是公开的吗?
  3. 【分享-EasyRecovery】删除的文件找不回?不存在的!
  4. 小b和回文数(51Nod-2483)
  5. Skill Level 4 D23
  6. Vue 单页面应用 把公共组件放在 app.vue 但是我希望某个页面没有这些公共组件怎么办???(比如登陆页面)
  7. oracle lpad 字符集,oracle Lpad()函数和Rpad()函数的用法
  8. N划分成若干个奇正整数之和的分法有多少种---动态规划
  9. java creat sql,java 实体类 生成 create sql
  10. Structs2-基础
  11. 国人走向世界的一个很好的艺术与设计网站
  12. 东方联盟郭盛华获100亿战略入股,到底谁支持他?网友:不敢猜
  13. 厦门大学计算机专业录取分数线2019,【厦门大学:2019-2016山西省各专业录取分数线】...
  14. PostgreSql 批量修改数据库下所有表 owner
  15. dsp28335 Ecap总结
  16. 【CV】MobileNet:使用深度可分离卷积实现用于嵌入式设备的 CNN 架构
  17. python数值互换_python值交换
  18. 国外支付(Paypal,Cybersource)
  19. 利用OpenCV实现欧拉数的计算
  20. 善用云函数,开源节流,小程序后端使用云函数案例

热门文章

  1. 星际争霸编辑器虫族埋地后单位类型变化
  2. 小程序 rich-text 不支持 section 标签的情况
  3. 常见的 QGraphicsItem
  4. Yolo目标检测算法属于深度学习吗?yolo算法是什么?
  5. 【转载】pop与popleft
  6. 摸索Detours 2:使用Detours 进行简单的Hook
  7. GeoMesa源码学习:空间索引
  8. Gradle Transform API 和 Annotation Processor 简要介绍
  9. mysql——数据库之间的迁移
  10. Python+selenium+Gmail半自动登录-注销-修改密码