zoukankan      html  css  js  c++  java
  • 如何使用PHP排序key为字母+数字的数组

    你还在为如何使用PHP排序字母+数字的数组而烦恼吗?
    当时我就震惊了

    今天有个小伙伴在群里问:
    如何将一个key为字母+数字的数组按升序排序呢?

    举个例子:

    $test = [
    	'n1' => 22423,
    	'n10' => 22423,
    	'n2' => 'werwerw',
    	'n3' => 22423,
    	'n4' => 22423,
    	'n5' => 22423,
    	'n21' => 22423,
    	'n11' => 22423,
    ];
    

    希望将它排序成这样子:

    $test = [
    	'n1' => 22423,
    	'n2' => 'werwerw',
    	'n3' => 22423,
    	'n4' => 22423,
    	'n5' => 22423,
    	'n10' => 22423,
    	'n11' => 22423,
    	'n21' => 22423,
    ]
    

    PHP数组函数帮到你

    $test = [
    	'n1' => 22423,
    	'n10' => 22423,
    	'n2' => 'werwerw',
    	'n3' => 22423,
    	'n4' => 22423,
    	'n5' => 22423,
    	'n21' => 22423,
    	'n11' => 22423,
    ];
    ksort($test, SORT_NATURAL);
    var_dump($test);
    

    得到的结果:

    array (size=8)
      'n1' => int 22423
      'n2' => string 'werwerw' (length=7)
      'n3' => int 22423
      'n4' => int 22423
      'n5' => int 22423
      'n10' => int 22423
      'n11' => int 22423
      'n21' => int 22423
    

    那么这个函数的意思是什么呢?

    定义和用法

    ksort() 函数对关联数组按照键名进行升序排序。

    语法
    ksort(array,sortingtype);
    
    参数 描述
    array 必需。规定要进行排序的数组。
    sortingtype 可选。规定如何排列数组的元素/项目。可能的值:
    0 = SORT_REGULAR -默认。把每一项按常规顺序排列(Standard ASCII,不改变类型)。
    1 = SORT_NUMERIC - 把每一项作为数字来处理。
    2 = SORT_STRING - 把每一项作为字符串来处理。
    3 = SORT_LOCALE_STRING - 把每一项作为字符串来处理,基于当前区域设置(可通过 setlocale() 进行更改)。
    4 = SORT_NATURAL - 把每一项作为字符串来处理,使用类似 natsort() 的自然排序。
    5 = SORT_FLAG_CASE - 可以结合(按位或)SORT_STRING 或 SORT_NATURAL 对字符串进行排序,不区分大小写。
    说明

    ksort() 函数按照键名对数组排序,为数组值保留原来的键。
    可选的第二个参数包含附加的排序标志。
    若成功,则返回 TRUE,否则返回 FALSE。

    提示

    提示:请使用 krsort() 函数对关联数组按照键名进行降序排序。
    提示:请使用 asort() 函数对关联数组按照键值进行升序排序。

    具体可看: 数组函数

  • 相关阅读:
    比较好的总结runtime
    开发证书详解
    删除数组中特定元素推荐做法
    pbxproj文件冲突解决办法
    svn不提交user文件
    c提高第六次课 文件读取
    c++函数指针
    c提高第五次作业
    c提高第四次作业
    c提高第四课
  • 原文地址:https://www.cnblogs.com/ailhc/p/7594585.html
Copyright © 2011-2022 走看看