sort()

1. 定义

该函数对数组的键值进行升序排序。 成功时返回TRUE,失败则返回FALSE。

注:

  • 排序时该函数会删除所有的键名,重新使用数字索引作为键名

2. 语法

sort ( array &$array [, int $sort_flags = SORT_REGULAR ] ) : bool

3. 参数说明

参数 可选性 数据类型 描述
$array 必需 数组 待升序排序的数组
$sort_flags 可选 整型或常量 排序比较规则

其中,$sort_flags有以下几个可选值:

  • SORT_REGULAR:默认值,常规比较,不改变值类型
  • SORT_NUMERIC:将数组元素当做数字比较
  • SORT_STRING:将数组元素当做字符串比较
  • SORT_LOCALE_STRING:根据当前的区域设置将数组元素当做字符串比较
  • SORT_NATURAL:与函数natsort()类似,数组元素被当做字符串,以自然顺序进行比较排序
  • SORT_FLAG_CASE:不区分大小写比较,可与常量SORT_STRINGSORT_NATURAL使用OR关键字进行联合使用

4. 示例

<?php

// sort()
// 对数组进行排序,成功时返回TRUE,失败则返回FALSE

$arr = [1, 5, 43, 76, 32, 0];
$res = sort($arr);
var_dump($res);// 输出:bool(true)
var_dump($arr);
/* 输出:
array(6) {
  [0]=>
  int(0)
  [1]=>
  int(1)
  [2]=>
  int(5)
  [3]=>
  int(32)
  [4]=>
  int(43)
  [5]=>
  int(76)
}
*/

$arr = ['name'=>'极速教程', 'host'=>'https://www.jisuapi.com/', 'number'=>'18888888888'];
$res = sort($arr);
var_dump($res);// 输出:bool(true)
var_dump($arr);
/* 输出:
array(3) {
  [0]=>
  string(11) "18888888888"
  [1]=>
  string(24) "https://www.jisuapi.com/"
  [2]=>
  string(12) "极速教程"
}
*/

// 数组元素类型不一样时可能造成不可预料的结果
$arr = ['name'=>'极速教程', 'host'=>'https://www.jisuapi.com/', 'business'=>['weather', 'translate', 'recognize', 'joke']];
$res = @sort($arr, SORT_STRING);// Notice:  Array to string conversion
var_dump($res);// 输出:bool(true)
var_dump($arr);
/* 输出:
array(3) {
  [0]=>
  array(4) {
    [0]=>
    string(7) "weather"
    [1]=>
    string(9) "translate"
    [2]=>
    string(9) "recognize"
    [3]=>
    string(4) "joke"
  }
  [1]=>
  string(24) "https://www.jisuapi.com/"
  [2]=>
  string(12) "极速教程"
}
*/

5. 延展阅读

  • asort():对数组的键值进行升序排序,并保留原来的键名