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

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

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了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怎么遍历数组替换数组中的元素的值

相关文章

  • 2022-04-29AI绘制质感电池图标
  • 2022-04-29带你开发一个虎年春节头像生成小程序
  • 2022-04-29PHP怎么返回四位数不满补零
  • 2022-04-29WordPress程序打开速度慢的三种解决方法
  • 2022-04-29MongoDB和MySQL的区别是什么
  • 2022-04-29技术教程:如何安装ioncube扩展
  • 2022-04-29Photoshop制作油漆溢出特效的艺术字教程
  • 2022-04-29介绍JavaScript正则实现表达式以字母开头
  • 2022-04-29帝国cms模型数据表常用的二次开发的需要的函数
  • 2022-04-29完全掌握AWS S3在Laravel中的使用

文章分类

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

最近更新的内容

    • CentOS7 MySQL怎么进行定时备份
    • PS打造动感抽象炫光舞者海报效果制作教程
    • Thinkphp5中是如何自定义全局异常
    • Linux中php安装目录在哪个文件夹
    • 简析Thinkphp5框架通过模型进行增删改查
    • 提高网站排名的三个方法
    • Illustrator制作质感水晶球教程
    • Web移动端Fixed布局的解决方案
    • 修改织梦cms标签TAG不限制长度
    • Photoshop设计时尚大气的3D螺旋球

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

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