【每日函數】每日函數(2021.08.10)
一夢千年系列
今日函數
array_multisort
、array_pad
、array_pop
、array_product
、array_push
array_multisort1
對多個數組或者多維數組進行排序
- 說明
array_multisort(array &$array, mixed $sort_order = SORT_ASC, mixed $sort_flags = SORT_REGULAR, ...)
- 參數
array
需要排序的數組
sort_order
可以省略,排序的順序,參數可以是SORT_ASC和SORT_DESC,默認是SORT_ASC,參數位置可以和sort_flat交換
sort_flags
可以省略,排序方式:
- SORT_REGULAR:通常排序
- SORT_NUMERIC:按照數字大小比較
- SORT_STRING:按照字元串比較
- SORT_LOCAL_STRING:根據本地化設置,按照字元串比較
- SORT_NATURAL:自然排序,這種排序是我們經常用的,但是並不是默認排序
- 這項就是說明可以組合排序
...
更多需要排序的數組,排序需要參照第一個數組
- 返回值
返回值是true或者false,排序是引用排序
- 範例
$array = [7, 9, 3, 6, 1];
array_multisort($array);
print_r($array);
以上範例會輸出
Array
(
[0] => 1
[1] => 3
[2] => 6
[3] => 7
[4] => 9
)
- 特別注意
配合array_column對多維數組進行排序十分好用,是引用排序,關聯數組鍵名不變,索引數組的索引值會重排
array_pad2
填充數組到指定長度,如果指定長度小於數組實際長度,則不填充
- 說明
array_pad(array $array, int $size, mixed $value) : array
- 參數
array
需要填充的數組
size
需要填充到的長度
value
需要填充的值
- 返回值
返回一個填充以後的數組,如果size是正數,則填充到右側,如果是負數則填充到左側
- 範例
$array = [7, 9, 3, 6, 1];
$newArray = array_pad($array, 10, 1);
print_r($newArray);
以上範例輸出
Array
(
[0] => 7
[1] => 9
[2] => 3
[3] => 6
[4] => 1
[5] => 1
[6] => 1
[7] => 1
[8] => 1
[9] => 1
)
- 特別說明
長度可以是負數,使用絕對數計算長度
array_pop3
彈出數組最後一個元素,並返回最後一個元素,也稱出棧
- 說明
array_pop(array &$array) : mixed
- 參數
array
需要操作的數組
- 返回值
返回數組最後一個元素
- 範例
$array = [7, 9, 3, 6, 1];
$res = array_pop($array);
print_r($array);
以上範例輸出
Array
(
[0] => 7
[1] => 9
[2] => 3
[3] => 6
)
- 特別說明
返回數組最後一個元素,原數組移除最後一個元素
array_product4
返回所有數組鍵值的乘積,空數組返回1,鍵值有非數字類型的則返回0
- 說明
array_product(array $array) : number
- 參數
array
需要計算乘積的數組
- 返回值
數組所有鍵值的乘積,空數組返回1,鍵值有非數字則返回0,參數不是數組則報錯
- 範例
$array = [7, 9, 3, 6, 1];
$res = array_product($array);
print_r($res);
以上範例輸出
1134
- 特別說明
返回數組所有鍵值的乘積,空數組返回1,鍵值有非數字則返回0,參數不是數組則報錯
array_push5
向數組末尾填充一個元素,也稱入棧,並返回新數組的長度
- 說明
array_push(array &$array, mixed ...) : int
- 參數
array
需要操作的數組
...
需要入棧的元素
- 返回值
返回處理後的數組長度
- 範例
$array = [7, 9, 3, 6, 1];
array_push($array, 8);
print_r($array);
以上範例輸出
Array
(
[0] => 7
[1] => 9
[2] => 3
[3] => 6
[4] => 1
[5] => 8
)
- 特別說明
如果僅僅是給數組增加一個元素,不建議使用這個函數,會增加調用函數的額外負擔