一夢千年系列
今日函式
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
)
- 特別說明
如果僅僅是給陣列增加一個元素,不建議使用這個函式,會增加呼叫函式的額外負擔