文档首页> 常见问题> php常用数组函数(四)

php常用数组函数(四)

发布时间:2023-04-14 05:30       

* 数组的排序

* 注意:

* 1.数组为引用传参,所有原数据会被改写;

* 2.数组元素的类型建议全部相同,否则会产生不可预见结果

* 3.排序成功返回: true,失败返回: false

* 可用常量:

* 1.SORT_REGULAR: [默认]正常比较单元(不改变类型)

* 2.SORT_NUMERIC: 单元被作为数字来比较

* 3.SORT_STRING: 单元被作为字符串来比较

* 4.SORT_NATURAL: 单元以“自然的顺序”对字符串进行排序

* 5.SORT_FLAG_CASE: 不区分大小写排序字符串

* 一. 正序: associate(关联的), key(键),前面加上这二个单词的首字母表示

* 1. sort(&$arr, $flag) 按值升序排列,键名按索引方式重置

* 2. asort(&$arr,$flag) 按值升序排列,键名保留与值的对应

* 3. ksort(&$arr,$flag) 按键名升序排列,适合于关联数组,键值对应关系不变

* 二、反序: reversal 反转,函数前添加一个r即可

* 1. rsort(&$arr, $flag):对数组逆向排序

* 2. arsort(&$arr, $flag):对数组进行逆向排序并保持索引关系

* 3. krsort(&$arr, $flag):对数组按照键名逆向排序

* 三、自定义回调函数进行排序: usort(&$arr, functoin($a, $b){ #code })

* 注意: 仅对值进行排序,忽略键名(即会重置键名)

$arr = ['id'=>3, 'name'=>'zhu', 'course'=>'php', 'grade'=>60, 5=>true];
echo '<pre>';
echo '<p>原始数组:</p>';
print_r($arr);
echo '<hr color="red">';

//这里介绍一个非常简单的例子,更复杂的案例,会在实战中进行介绍

$arr1 = [10, 4, 22, 99, 35, 18];

//下面我们用自定义回调方法对$arr1进行由小到大排列

usort($arr1, function($a, $b) {
$res = $a - $b; 
if ($res == 0) {
return 0;
} else if ($res > 0) {
return true;
} else {
return false;
}
});
print_r($arr1);