array_multisort 使用筆記

一開始遇到array_multisort 這個函數時,看手冊 怎麼就是看不懂,很不理解。後來在網上看了不少的例子 才慢慢理解一點。如今記下來,留着用。sql

一,一維數組排序

$a=array("Dog","Cat","Horse","Bear","Zebra");
array_multisort($a);
print_r($a);

結果:數據庫

Array(
[0] => Bear
[1] => Cat
[2] => Dog
[3] => Horse
[4] => Zebra)

上面就是按照普通的字母升序排列(A,B,C,D...),沒什麼好講的數組

二,多個一維數組排序

$ar1 = array(22,12,3);
$ar2 = array(1,3,7);
array_multisort($ar1, $ar2);
echo '<pre>';
print_r($ar1);
print_r($ar2);

結果:函數

Array(
    [0] => 3
    [1] => 12
    [2] => 22
)
Array
(
    [0] => 7
    [1] => 3
    [2] => 1
)

$ar1和$ar2的數據能夠當作一個表 以下:
圖片描述spa

$ar1和$ar2分別爲列名,而後如sql語句同樣select * from table order by $ar1 asc ,$ar2 asc 排序便可3d

三,多維數組排序

一般咱們從數據庫取出來的code

$data=array(
    array('id' => 67, 'score' => 20,'name'=>'小明'),
    array('id' => 86, 'score' => 10,'name'=>'小紅'),
    array('id' => 85, 'score' => 60,'name'=>'小花')
); 
  
foreach ($data as $key => $row) {
    $id[$key]  = $row['id'];
    $score[$key] = $row['score'];
}
array_multisort($id, SORT_ASC, $data);
echo "<pre>";
print_r($data);

結果:blog

Array
    (
        [0] => Array
        (
            [id] => 67
            [score] => 2
            [name] => 小明
        )

        [1] => Array
        (
            [id] => 85
            [score] => 6
            [name] => 小花
        )
        [2] => Array
        (
            [id] => 86
            [score] => 1
            [name] => 小紅
        )
    )

此時,把id,score,name當作列名稱如圖
圖片描述排序

若是想按照某個字段排序 ,先循環獲取到全部該字段的值造成一個數組,而後按照該字段排序便可。而後如sql語句同樣select * from table order by $id asc 排序便可圖片

相關文章
相關標籤/搜索