php 对多维数组排序,php多维数组排序

本文详细介绍了PHP中用于对数组进行排序的函数usort、uasort和uksort,特别是如何在多维数组中自定义比较规则。示例代码展示了如何根据数组元素的特定部分进行排序,以及如何分别对关联数组的值和关键字进行排序。通过实例,读者可以理解如何在实际项目中应用这些函数来排序复杂的数据结构。
摘要由CSDN通过智能技术生成

数字索引数组:

bool usort( array &$array, callback $cmp_function )

usort函数对指定数组(参数1)按指定方式(参数2)进行排序。

对多维数组进行排序时,多维数组的每个元素又是一数组类型,而两个数组如何比较大小?

这是需要用户自定义的(是按每个数组的第一元素比较还是…)。

复制代码 代码如下:

//定义多维数组

$a = array(

array("sky", "blue"),

array("apple", "red"),

array("tree", "green"));

//自定义数组比较函数,按数组的第二个元素进行比较。

function my_compare($a, $b) {

if ($a[1] < $b[1])

return -1;

else if ($a[1] == $b[1])

return 0;

else

return 1;

}

//排序

usort($a, 'my_compare');

//输出结果

foreach($a as $elem) {

echo "$elem[0] : $elem[1]
";

}

?>

结果为:

sky : blue

tree : green

apple : red

关联数组:

bool uasort(array &$array, callback $cmp_function)

bool uksort(array &$array, callback $cmp_function)

uasort, uksort用法与usort相同,其中uasort()对关联数组的值(value)进行排序,uksort()对关联数组的关键字(key)进行排序。

复制代码 代码如下:

$a = array(

'Sunday' => array(0,'7th'),

'Friday' => array(5,'5th'),

'Tuesday'=> array(2,'2nd'));

function my_compare($a, $b) {

if ($a[1] < $b[1])

return -1;

else if ($a[1] == $b[1])

return 0;

else

return 1;

}

//按$a数组的值的第二个元素(7th,5th,2nd)进行排序

uasort($a, 'my_compare');

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

echo "$key : $value[0] $value[1]
";

}

//按$a数组的关键字的第二个字符(r,u,u)进行排序

uksort($a, 'my_compare');

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

echo "$key : $value[0] $value[1]
";

}

?>

结果为:

Tuesday : 2 2nd

Friday : 5 5th

Sunday : 0 7th

Friday : 5 5th

Sunday : 0 7th

Tuesday : 2 2nd

>>> 更多内容,请查看 php数组排序方法大全 <<<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值