Php 数组排序之多维数组排序

Php 数组排序之多维数组排序

php 中最强大的类型非数组莫属!任何类型的数据都可以用数组来存储。

项目开发中对数组排序已是家常便饭,本文主要是总结一些经验和方法以及它们的区别,供大家学习参考。

一维数组排序

sort 函数:

本函数对数组值转换为整型并被从最低到最高重新安排,删除原有的键名。成功时返回 TRUE, 或者在失败时返回 FALSE.

rsort 函数:

本函数对数组值转换为整型并被从最高到最低重新安排,删除原有的键名。成功时返回 TRUE, 或者在失败时返回 FALSE.

asort 函数:

本函数对数组进行低到高排序,数组的索引保持和单元的关联。主要用于对那些单元顺序很重要的结合数组进行排序。

arsort 函数:

对数组进行逆向排序(高到低)并保持索引关系

本函数对数组进行排序,数组的索引保持和单元的关联。主要用于对那些单元顺序很重要的结合数组进行排序。

成功时返回 TRUE, 或者在失败时返回 FALSE.

多维数组排序

usort函数: bool
usort ( array&$array ,callback$cmp_function
)

本函数将用用户自定义的比较函数对一个数组中的值进行排序。如果要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数。

比较函数必须在第一个参数被认为小于,等于或大于第二个参数时分别返回一个小于,等于或大于零的整数

此函数为 array 中的元素赋与新的键名。这将删除原有的键名,而不是仅仅将键名重新排序。

成功时返回 TRUE, 或者在失败时返回 FALSE.

uasort 函数:bool uasort (array&$array ,callback$cmp_function
)

uasort —
使用用户自定义的比较函数对数组中的值进行排序并保持索引关联

本函数对数组排序并保持索引和单元之间的关联。主要用于对那些单元顺序很重要的结合数组进行排序。

比较函数是用户自定义的。

成功时返回 TRUE, 或者在失败时返回 FALSE.

uksort 函数:bool uksort (array&$array ,callback$cmp_function
)

本函数将使用用户提供的比较函数对数组中的键名进行排序。如果要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数。

   cmp_function 函数应接受两个参数,该参数将被array 中的一对键名填充。

比较函数在第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。

成功时返回 TRUE, 或者在失败时返回 FALSE(本排序方法和 uasort 非常类似).

array_multisort函数: bool array_multisort (array$ar1 [,mixed$arg
[,mixed$... [,array$...
]]] )

可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。

关联(string)键名保持不变,但数字键名会被重新索引。

本函数的参数结构有些不同寻常,但是非常灵活。

第一个参数必须是一个数组。接下来的每个参数可以是数组或者是下面列出的排序标志。

排序顺序标志:

?SORT_ASC - 按照上升顺序排序

?SORT_DESC - 按照下降顺序排序

 排序类型标志: 

?SORT_REGULAR - 将项目按照通常方法比较

?SORT_NUMERIC - 将项目按照数值比较

?SORT_STRING - 将项目按照字符串比较 每个数组之后不能指定两个同类的排序标志。

每个数组后指定的排序标志仅对该数组有效 - 在此之前为默认值 SORT_ASC 和 SORT_REGULAR。

uasort 排序学习案例:

/* 多维数组排序 */
$arr_more = array(
         array(1,'age'=> 12,'name' => 'wzq'),
         array(2,'age'=> 42,'name' => 'eee'),
         array(9,'age'=> 82,'name' => '22'),
         array(4,'age'=> 162,'name' => 'ff'),
         array(6,'age'=> 2,'name' => 'jj'),
         array(17,'age'=> 52,'name' => 'nn')
);
uasort($arr_more,function($x,$y){
     //age从大到小
     return $x['age'] < $y['age'];
});
var_dump($arr_more);

以上本文就是这些,知识点摘自 php学习手册。抛砖引玉,希望对大家有所帮助!

时间: 2024-11-05 14:44:49

Php 数组排序之多维数组排序的相关文章

PHP 数组排序 +php二维数组排序方法

PHP - 一维数组的排序函数 在本节中,我们将学习如下 PHP 数组排序函数: sort() - 以升序对数组排序 rsort() - 以降序对数组排序 asort() - 根据值,以升序对关联数组进行排序 ksort() - 根据键,以升序对关联数组进行排序 arsort() - 根据值,以降序对关联数组进行排序 krsort() - 根据键,以降序对关联数组进行排序 一维数组排序可以使用asort.ksort等一些方法进程排序,相对来说比较简单.二维数组的排序怎么实现呢?使用array_m

写个函数用来对二维数组排序

29.写个函数用来对二维数组排序(新浪) Foreach有两种语法: 语法一:foreach($arr as $value){ Echo $value; } 语法一:foreach($arr as $key=>$value){ Echo $key . "=>" . $value; } 使用foreach遍历二维数组 与数组排序有关的函数: ?  sort():对数组元素的值升序排列,不保留索引关系 ?  rsort():对数组元素的值降序排列,不保留索引关系. ?  aso

写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数

下面代码没有认真看: <?php //二维数组排序, $arr是数据,$keys是排序的健值,$order是排序规则,1是升序,0是降序 function array_sort($arr, $keys, $order = 0) { if (!is_array($arr)) { return false; } $keysvalue = array(); foreach ($arr as $key => $val) { $keysvalue[$key] = $val[$keys]; } if ($

PHP 二维数组排序 可以按指定 键值排序

<?php header("Content-Type:utf-8"); $arr = array( 0 => array( 'name' => '国际原油价格', 'url_pinyin' => 'kucun', ), 1 => array( 'name' => '原油', 'url_pinyin' => 'jiage', ), 2 => array( 'name' => '原油价格', 'url_pinyin' => 'yu

PHP中有关多维数组排序

有关多维数组排序的问题,工作中经常遇到,但是不同的人,处理的方法不一样,比如下面的数组 $data = array(         array("name"=>"kivmi","age"=>27),         array("name"=>"sathen","age"=>24),         array("name"=>&quo

js sort 二维数组排序的用法小结

最近在搞js 排序的问题,因为数据库排序太耗资源,如果能转移到客户端去排序,能大大D减少服务器内存消耗.客户端的话,除了js,就是as了,可惜我as学得太烂,所以只能选择js来研究研究了...经过我的测试,js内置方法sort的效率非常高 我们知道在js中默认提供了sort函数,但是这个函数默认是按照数组内容的ascii码升序进行排列的,如果我们要对二维数组排序要如何做呢?在php中是有multi_sort函数可供调用的,但是在js中似乎没有这种函数,但是没关系 ,因为js的sort函数其实也提

PHP_I love U之(1)php衣食父母:使用usort()函数为二维数组排序

<?php //PHP_I love U之(1)php衣食父母:使用usort()函数为二维数组排序 //PHP语言中使用usort()函数 为 二维数组排序: // [][]==  a[][1]= 长度; a[][2] = views点击数 $AAlong=10; //变量$AAlong 定义数组长度 //for ($i=0;$i<$AAlong;++$i)  //多维数组扩展时使用- //{ for($j=0;$j<$AAlong;++$j) //for j22  //这段给数组(用

php基础篇-二维数组排序 array_multisort

原文:php基础篇-二维数组排序 array_multisort 对2维数组或者多维数组排序是常见的问题,在php中我们有个专门的多维数组排序函数,下面简单介绍下: array_multisort(array1,sorting order, sorting type,array2,array3..)是对多个数组或多维数组进行排序的函数. array1 必需.规定输入的数组. sorting order 可选.规定排列顺序.可能的值是 SORT_ASC 和 SORT_DESC. sorting t

php多维数组排序

问题: 有这样一个数组$arr: [1]=> array(3) { [0]=> string(89) "........./r1822113797800000_AIK1_20140626_190411.mp3" [1]=> string(4) "AIK1" [2]=> string(16) "18221*********" } [2]=> array(3) { [0]=> string(89) "..