• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > PHP如何对数组排序并保持键值不变

PHP如何对数组排序并保持键值不变

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了PHP,数组排序,键值不变等相关知识,希望对您有所帮助

php对数组排序并保持键值不变的方法:首先我们需要取出数组的键名;然后对键名进行排序;最后根据对应的键名进行赋值,组成一个新数组并返回即可。


PHP如何对数组排序并保持键值不变


实现代码:

$data = array(    1001 => array(        'age' => 22,        'name' => '鸠摩智'    ),    1007 => array(        'age' => 21,        'name' => '慕容复'    ),    1004 => array(        'age' => 27,        'name' => '乔帮主'    ));//根据字段age对数组$data进行降序排列$data = arraySort($data, "age", "desc" );print_r($data);/** * @desc arraySort php二维数组排序 按照指定的key 对数组进行自然排序 * @param array $arr 将要排序的数组 * @param string $keys 指定排序的key * @param string $type 排序类型 asc | desc * @return array */function arraySort($arr, $keys, $type = 'asc'){    $keysvalue = $new_array = array();    foreach ($arr as $k => $v) {        $keysvalue[$k] = $v[$keys];    }     if ($type == 'asc') {        natsort($keysvalue);    }    if ($type == 'desc') {        natsort($keysvalue);        $keysvalue = array_reverse($keysvalue, TRUE); // 将原数组中的元素顺序翻转,如果第二个参数指定为 true,则元素的键名保持不变    }    foreach ($keysvalue as $k => $v) {        $new_array[$k] = $arr[$k];    }    return $new_array;}

这里我们也可以精简下arraySort函数,处理结果相同:

/** * @desc arraySort php二维数组排序 按照指定的key 对数组进行自然排序 * @param array $arr 将要排序的数组 * @param string $keys 指定排序的key * @param string $type 排序类型 asc | desc * @return array */function arraySort($arr, $keys, $type = 'asc'){    $keysvalue = $new_array = array();    foreach ($arr as $k => $v) {        $keysvalue[$k] = $v[$keys];    }     $type == 'asc' ? asort($keysvalue) : arsort($keysvalue);    foreach ($keysvalue as $k => $v) {        $new_array[$k] = $arr[$k];    }    return $new_array;}

输出结果:


PHP如何对数组排序并保持键值不变


键名保持了不变,实现的原理很简单,先取出键名,然后对键名排序,再根据对应的键名赋值组成新数组返回。
大家可以看到,这里我们主要用到了php的几个核心的排序函数。

asort() 对关联数组按照键值进行升序排序。

arsort()对关联数组按照键值进行降序排序。

natsort() 实现了“自然排序”,即数字从 1 到 9 的排序方法,字母从 a 到 z 的排序方法,短的优先。数组的索引与单元值保持关联。

注意:在自然排序算法中,数字 2 小于 数字 10。在计算机排序算法中,10 小于 2,因为 "10" 中的第一个数字小于 2。



分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 如何使用yum安装指定版本的php
  • PHP存入mysql乱码怎么办
  • laravel与thinkphp之间的区别与优缺点
  • ThinkPhp5.1制作微信支付以及支付后的几种状态说明
  • PHP读取文件的两种方式:file_get_contents和fread(附代码实例)
  • 记录某PHP后台系统,图片无法上传处理过程
  • PHP怎么只保留汉字
  • PHP怎么返回四位数不满补零
  • ThinkPHP3.2.3如何从php5升级到php7
  • PHP怎么遍历数组替换数组中的元素的值

相关文章

  • Photoshop制作超酷现代战争按钮教程
  • vue中data改变后让视图同步更新的方法
  • 最简单的WordPress手动输入页号并跳转翻页的方法
  • 如何解决strict standards php报错问题
  • 修改phpMyAdmin导入数据库文件大小限制的解决方法
  • PS设计制作蓝色梦幻泡泡背景的详细教程
  • thinkphp5报错显示nginx 404页面的解决办法
  • JavaScript怎么检测当前浏览器是无头浏览器
  • 11个SEO细节提升网站权威性
  • WordPress移除head头部js、css、feed等多余加载项

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • PS抠图插件Topaz ReMask滤镜抠图使用图文教程
    • Javascript怎么实现红绿灯
    • 如何解决thinkphp new self()报错问题
    • 优化的实质是什么?
    • 介绍PHP基于Thinkphp5的砍价活动相关设计
    • 浅析什么是装饰器?Vue中怎么使用装饰器?
    • 为网站选择一个适当的DMOZ目录
    • 如何解决vue中layui报错问题
    • Photoshop绘制玻璃质感的APP软件图标
    • Photoshop设计绚丽光线效果的心形视频教程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有