欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  头条

php常用数组函数(四)

程序员文章站 2022-03-17 13:37:15
...
* 数组的排序

* 注意:

* 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);