一梦千年系列
今日函数
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
)
- 特别说明
如果仅仅是给数组增加一个元素,不建议使用这个函数,会增加调用函数的额外负担