您的位置:

phparray重新排序,php array排序

本文目录一览:

php 多维数组键值重新排序

$a

=

array(2=array(1,2,3,4),6=array(6,2,3,5),1=array(1,4,53));

$b

=

array_values($a);//返回数组中的所有值,形成新的数组,建立数字索引

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

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

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

输入数组被当成一个表的列并以行来排序——这类似于

SQL

ORDER

BY

子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话就按照下一个输入数组中相应值的大小来排序,依此类推。——这句话是理解此函数用法的关键。

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

排序顺序标志:

■SORT_ASC

-

按照上升顺序排序

■SORT_DESC

-

按照下降顺序排序

排序类型标志:

■SORT_REGULAR

-

将项目按照通常方法比较

■SORT_NUMERIC

-

将项目按照数值比较

■SORT_STRING

-

将项目按照字符串比较

每个数组之后不能指定两个同类的排序标志。每个数组后指定的排序标志仅对该数组有效

-

在此之前为默认值

SORT_ASC

SORT_REGULAR。

看看两个实际例子:

1、一次对多个数组进行排序:

复制代码

代码如下:

$num1

=

array(3,

5,

4,

3);

$num2

=

array(27,

50,

44,

78);

array_multisort($num1,

SORT_ASC,

$num2,

SORT_DESC);

print_r($num1);

print_r($num2);

//result:

Array

(

[0]

=

3

[1]

=

3

[2]

=

4

[3]

=

5

)

Array

(

[0]

=

78

[1]

=

27

[2]

=

44

[3]

=

50

)

2、对多维数组(以二位数组为例)进行排序:

复制代码

代码如下:

$arr

=

array(

'0'

=

array(

'num1'

=

3,

'num2'

=

27

),

'1'

=

array(

'num1'

=

5,

'num2'

=

50

),

'2'

=

array(

'num1'

=

4,

'num2'

=

44

),

'3'

=

array(

'num1'

=

3,

'num2'

=

78

)

);

foreach

(

$arr

as

$key

=

$row

){

$num1[$key]

=

$row

['num1'];

$num2[$key]

=

$row

['num2'];

}

array_multisort($num1,

SORT_ASC,

$num2,

SORT_DESC,

$arr);

print_r($arr);

//result:Array([0]=Array([num1]=3

[num2]=78)

[1]=Array([num1]=3

[num2]=27)

[2]=Array([num1]=4

[num2]=44)

[3]=Array([num1]=5

[num2]=50))

总结:

这里的重点就是,先把要排序的key存到一个一维数组中,然后就可以使用array_multisort()这个函数,将数组按照key进行排序了,当然,这里的排序你完全可以不适用array_multisort()这个函数,仅仅通过foreach遍历也能达到这个效果,但是既然php开发者给我们提供了更好的办法,我们就可以省去不必要的麻烦了。

用PHP编写程序 有一个数组$arr=array(4,3,8,9,2),将其按从小到大的顺序重新排序

?php

$array=array(4,3,8,9,2);

sort($array);

echo "标准排序\n";

for($i=0;$icount($array);$i++){

echo $array[$i];

}

natsort($array);

echo "\n自然排序\n";

for($i=0;$icount($array);$i++){

echo $array[$i];

}

?

结果如下:

标准排序 23489 自然排序 23489

PHP数组重新排序

array_multisort 对多个数组或多维数组进行排序 排序的依据可以是自定义,完全可以用一个一维数组去排序多维数组.

$arrSort = [];

foreach($arr as $info) {

    $arrSort[] = $info['o'];

}

sort($arrSort);

array_multisort($arrSort, $arr);

array_multisort

你研究一下.这个是完全可行的.