* 数组的排序
* 注意:
* 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);
登录后复制