* 陣列的排序
* 注意:
* 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 class="brush:php;toolbar:false">'; 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);