`
opensuse
  • 浏览: 183425 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PHP数组函数-----array_multisort

    博客分类:
  • php
阅读更多

刚才看了半天数组排序

分别有:递增排序——sort
             递减排序——rsort
             数组排序——array_multisort

前两个我相信我应该和大家一样一看就懂,事实也是如此.

可是第三个却看了好久也没有看懂,郁闷    -_-!!!

最后通过反复比较自己修改后的程序的运行结果,终于有些通路了..

请看介绍:

   


array_multisort
(PHP 
4 ,  PHP  5 )

array_multisort   --  对多个数组或多维数组进行排序
说明
bool 
array_multisort  (  array  ar1 [ ,   mixed  arg [ ,   mixed   ...  [ ,   array   ... ]]] )


如果成功则返回 
TRUE ,失败则返回  FALSE 。 

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

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

输入数组被当成一个表的列并以行来排序――这类似于 SQL 的 ORDER BY 子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话就按照下一个输入数组中相应值的大小来排序,依此类推。 

本函数的参数结构有些不同寻常,但是非常灵活。第一个参数必须是一个数组。接下来的每个参数可以是数组或者是下面列出的排序标志。 

排序顺序标志: 


SORT_ASC 
-  按照上升顺序排序

SORT_DESC 
-  按照下降顺序排序


排序类型标志: 


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

SORT_NUMERIC 
-  将项目按照数值比较

SORT_STRING 
-  将项目按照字符串比较


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

以上摘自PHP手册,嘿嘿....

下面请看例子:

<? php

$ar1   =   array ( 5 => " zero " , 1 => " one " , 4 => " two " );
$ar2   =   array ( 4 => " three " , 9 => " four " , 1 => " five " );

array_multisort ( $ar1 , $ar2 );

foreach  ( $ar1   as   $key => $value ){
    
var_dump ( $value );    
}

echo   " <hr/> " ;

foreach  ( $ar2   as   $key => $value ){
    
var_dump ( $value );
}


?>

这个的运行结果是:

string(3) "one" string(3) "two" string(4) "zero"
string(4) "four" string(4) "five" string(5) "three"



当然这个上面的排序我想大家应该能看懂.嘻嘻.就是按字符串升序排的,和单独运行sort的结果一样.

但是下面是怎么回事呢??

下面的也是按升序排的?   很显然不是,因为如果是升序应该是   five    four   three

那么是怎么回事呢?

现在把程序改一下,

<? php

$ar1   =   array ( 5 => " zero " , 1 => " uone " , 4 => " two " );
$ar2   =   array ( 4 => " three " , 9 => " four " , 1 => " five " );

array_multisort ( $ar1 , $ar2 );

foreach  ( $ar1   as   $key => $value ){
    
var_dump ( $value );    
}

echo   " <hr/> " ;

foreach  ( $ar2   as   $key => $value ){
    
var_dump ( $value );
}


?>

再来看它

string(3) "two" string(4) "uone" string(4) "zero"
string(4) "five" string(4) "four" string(5) "three"


第一行还是按升序排列,第二行也变成升序了?呵.怎么回事呢??

仔细读手册上的函数定义,再加上运行结果,不难看出这样一件事:

那就是,第二行的元素和第一行的是对应的.也就是说

three的位置对应zero的位置,four的位置对应那个uone的位置,five的位置对应two,

排列完之后仍然是这个对应关系.呵.就是这样喽~~

大家可以继续把上面的顺序换一下,看输出后是不是永远是one对应着four哦.呵..

Good  Good   Strudy ,  Day   Day   Up!!!

分享到:
评论

相关推荐

    php数组操作函数

    array_change_key_case -- 返回...array_multisort -- 对多个数组或多维数组进行排序 array_pad -- 用值将数组填补到指定长度 array_pop -- 将数组最后一个单元弹出(出栈) array_product -- 计算数组中所有值的乘积

    PHP数组函数array_multisort()用法实例分析_.docx

    PHP数组函数array_multisort()用法实例分析_.docx

    PHP数组函数array_multisort()用法实例分析

    本文实例分析了PHP数组函数array_multisort()用法。分享给大家供大家参考,具体如下: 有时候我们需要对二维数组的某个键的值进行排序,这里就是讨论这个问题。我们可以使用array_multisort()这个函数。array_...

    PHP array_multisort() 函数的深入解析

    有两个数组:$arr1 = array(1,9,5);$arr2 = array(6,2,4);array_multisort($arr1,$arr2);print_r($arr1); // 得到的顺序是1,5,9print_r($arr2); // 得到的顺序是6,4,2我估计两个数组的值自始至终都是对应着的:1对应...

    array_multisort实现PHP多维数组排序示例讲解

    array_multisort — 对多个数组或多维数组进行排序 说明 bool array_multisort ( array ar1 [, mixed arg [, mixed … [, array …]]] ) array_multisort (PHP 4, PHP 5) 如果成功则返回 TRUE,失败则返回 FALSE。...

    php的array_multisort()使用方法介绍

    使用 array_multisort()函数对多个数组或多维数组进行排序的函数,正在研究数组排序、多维数组排序的朋友可以看看。 函数 bool array_multisort ( array &$arr [, mixed $arg = SORT_ASC [, mixed $arg = SORT_...

    如何利用php array_multisort函数 对数据库结果进行复杂排序

    下面将一下array_multisort函数array_multisort() 可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。 关联(string)键名保持不变,但数字键名会被重新索引。 排序顺序标志:SORT_ASC – ...

    php 数组排序 array_multisort与uasort的区别

    *************函数定义和语法************* array_multisort (PHP4 &gt;= 4.0b4) array_multisort — 排序复合或多样尺寸的数组 语法 : bool array_multisort (array ar1 [,mixed arg [,mixed …[,array…]]]) 说明 : ...

    php array_map array_multisort 高效处理多维数组排序

    其中键索引为要排序数组的索引,保证唯一性 2 利用排序函数sort等对$arrSort进行排序. 3 遍历$arrSort, 根据其索引,获取多维数组的数据,重新构造排序后的多维数组. 复制代码 代码如下:Array ( [0] =&gt; Array ( [link]...

    php array_multisort 对数组进行排序详解及实例代码

    php 中array_multisort() 函数可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。本文章向大家讲解array_multisort函数的使用方法。  array_multisort() 函数返回排序数组。您可以输入一个...

    PHP使用array_multisort对多个数组或多维数组进行排序

    PHP中array_multisort可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。 关联(string)键名保持不变,但数字键名会被重新索引。 输入数组被当成一个表的列并以行来排序——这类似于 SQL ...

    php关于array_multisort多维数组排序的使用说明

    对于PHP语言中的多维数组排序时最为复杂的一个排序方式。我们在实际编码中将会用到PHP函数array_multisort()来实现这一复杂的排序。

    php自定义二维数组排序函数array_orderby用法示例

    本文实例讲述了php自定义二维数组排序函数array_orderby用法。分享给大家供大家参考,具体如下: &lt;?php /** I came up with an easy way to sort database-style results. This does what example 3 does, ...

    PHP array_multisort()函数的使用札记

    array_multisort 对多个数组或多维数组进行排序的函数,需要的朋友可以参考下。

    PHP二维数组排序的3种方法和自定义函数分享

    关于排序一般我们都是通过数据库或者nosql(eg:redis)先排好序然后输出到程序里直接使用,但是有些时候我们需要通过PHP...一、用PHP自带array_multisort函数排序 复制代码 代码如下:&lt;?php  $data = array(); $da

    PHP 数组学习排序全接触第1/2页

    array_values($arr) array 返回数组所有元素 复制代码 代码如下: &lt;?php $arr = array(“a”, “b”, “c”); $arr = array_flip($arr); //反转数组的下标和值现在的$arr = array(0, 1, 2); $arr = array_values($...

Global site tag (gtag.js) - Google Analytics