php排序函数array_mulitsort

1.概念
array_multisort() 函数对多个数组或多维数组进行排序。
参数中的数组被当成一个表的列并以行来进行排序 - 这类似 SQL 的 ORDER BY 子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话,就会按照下一个输入数组中相应值的大小进行排序,依此类推。
第一个参数是数组,随后的每一个参数可能是数组,也可能是下面的排序顺序标志(排序标志用于更改默认的排列顺序)之一:
SORT_ASC - 默认,按升序排列。(A-Z)
SORT_DESC - 按降序排列。(Z-A)
2.例子

请将二维数组按照name的长度进行重新排序,按照顺序将id赋值(从1开始)。

数组为

$arr = array(
    array('id'=>0,'name'=>"aaaaaaaaa"),
    array('id'=>0,'name'=>"1212121"),
    array('id'=>0,'name'=>"acdd"),
    array('id'=>0,'name'=>"123"),
    array('id'=>0,'name'=>"1"),
    array('id'=>0,'name'=>"fdsafdsafdsafd"),
    array('id'=>0,'name'=>"dddddddddd")
);

源代码如下

$arr = array(
    array('id'=>0,'name'=>"aaaaaaaaa"),
    array('id'=>0,'name'=>"1212121"),
    array('id'=>0,'name'=>"acdd"),
    array('id'=>0,'name'=>"123"),
    array('id'=>0,'name'=>"1"),
    array('id'=>0,'name'=>"fdsafdsafdsafd"),
    array('id'=>0,'name'=>"dddddddddd")
);
//新定义一个数组,用来存储要排序数组中name的长度
foreach ($arr as $item) {
    $arr2[] = strlen($item['name']);
}
//按着name的长度进行排序
array_multisort($arr2,$arr);
//将id重新赋值
foreach ($arr as $k=>$v) {
    $arr[$k]["id"] = $k+1;
}
//格式化输出
echo "<pre>";
var_dump($arr);
echo "</pre>";




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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值