1、array_chunk:将一个数组分割成多个
array array_chunk ( array $array , int $size [, bool $preserve_keys= false ] )
将一个数组分割为多个数组,其中每个数组的单元数目由size决定。最后一个数组的单元数目可能会少于size个。
参数:
array:需要操作的数组。
size:每个数组的单元数目。
preserve_keys:设为TRUE,可以使PHP保留输入数组中原来的键名。如果指定了False,那每个结果数组将用从零开始的新数字索引,默认值是false。
返回值:得到的数组是一个多维数组中的单元,索引从零开始,每一维脑喊了size个元素。
栗子:
$input_array = array('a', 'b', 'c', 'd', 'e');
dd(array_chunk($input_array, 2));
dd(array_chunk($input_array, 2, true));结果同上
2.array_column:返回数组中指定的一列
array array_column ( array $input , mixed $column_key [, mixed $index_key = null ] )
array_column()返回数组中键值为column_key的列,如果指定了可选参数input_key,那么数组中的这一列的值将作为返回数组中对应值的键。
3.array_combine:创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值。
array array_combine ( array $keys , array $values )
返回一个array,用来自keys数组的值作为键名,来自values数组的值作为相应的值。
栗子:
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);
dd($c);
4.array_diff:计算数组的差集
array array_diff ( array $array1 , array $array2 [, array $... ] )
参数:
array1:要被对比的数组
array2:和这个数组进行比较
… :更多相比较的数组
返回值:返回一个数组,该数组包含所有在array1中但是不在其他参数数组中的值。注意键名保留不变。
5.array_key_exists:检查数组中是否有指定的键名或索引
bool array_key_exists ( mixed $key , array $array )
参数:
key:要检查的键
array:一个数组,包含待检查的键
返回值:成功是true,失败时false
####### 6.array_map:为数组的每个元素应用回调函数
array array_map ( callable $callback , array $array1 [, array $... ] )
参数:
callback
回调函数,应用到每个数组里的每个元素。
array1
数组,遍历运行 callback 函数。
…
数组列表,每个都遍历运行 callback 函数。
(1)、array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组,若函数作用后无返回值,则对应的新值数组中为空。
(2)、回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致。
6.array_merge:合并一个或多个数组。
array array_merge ( array $array1 [, array $... ] )
array_merge()将一个或者多个数组的单元合并起来,一个数组中的值附加到前一个数组的前面。返回作为结果的数组。
参数:
array1:要合并的第一个数组。
…:要合并的数组列表。
7、array_pop:弹出并返回数组array的最后一个单元,并将数组array的长度减一。
mixed array_pop(array $array)
返回值:
返回array的最后一个值。如果array是空(如果不是一个数组),将会返回NUll。
栗子:经过此操作后,$stack 将只有 3 个单元。并且 rasberry 将被赋给 $fruit。
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_pop($stack);
print_r($stack);
dd($fruit);
8.array_push:将一个或多个单个单元压入数组尾部
int array_push ( array &$array , mixed $value1 [, mixed $... ] )
array:输入数组
value1:要压入array末尾的第一个值。
返回值:返回处理之后的数组的元素个数。
栗子:
$base = array("orange", "banana", "apple", "raspberry");
$replacements = array(0 => "pineapple", 4 => "cherry");
$replacements2 = array(0 => "grape");
$basket = array_replace($base, $replacements, $replacements2);
print_r($basket);
$base数组中存在索引为0的数据,因此第一个orange不会被替换,返回结果:
Array ( [0] => grape [1] => banana [2] => apple [3] => raspberry [4] => cherry )
9、array_shift:将数组开头的单元移出数组
mixed array_shift (array &$array)
array_shift()将第一个单元移出并作为结果返回,将array的长度减一并将其他所有的单元向前移动一位。所有的数字键名将改为从零开始计数,文字键名不变。
返回值:
返回移除的值,如果array为空或不是一个数组则返回NULL
10、array_slice:从数组中取出一段
array array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] )
参数:
array
输入的数组。
offset
如果offset非负,则序列将从array中的此偏移量开始。如果offset为负,则序列将从array中距离末端这么远的地方开始。
length
如果给出了length并且为正,则序列中将具有这么多的单元。如果给出了length并且为负,则序列将终止在距离数组末端这么远的地方。如果省略,则序列将从offset开始一直到 array 的末端。
preserve_keys
注意 array_slice() 默认会重新排序并重置数组的数字索引。你可以通过将preserve_keys设为TRUE来改变此行为。
11、array_splice:去除数组中的某一部分并用其它值代替。
array array_splice ( array &$input , int $offset [, int $length = count($input) [, mixed $replacement = array() ]] )
参数:
input:输入的数组
offset:如果offset为正,则从input数组中指定的偏移量开始移除。如果offset为负,则从input末尾倒数指定的偏移量开始移除。
lenght:如果省略length,则移除数组中从offset到结尾的那一部分。如果指定了length并且为正值,则移除这么多单元。如果指定了length并且为负值,则移除从offset到数组末尾倒数length为止中间所有的单元,如果设置了length为零,不会移除单元。小窍门:当给出了replacement时要移除从offset到数组末尾所有单元时,用count(
i
n
p
u
t
)
作
为
l
e
n
g
t
h
。
r
e
p
l
a
c
e
m
e
n
t
:
如
果
给
出
了
r
e
p
l
a
c
e
m
e
n
t
数
组
,
则
被
移
除
的
单
元
被
此
数
组
中
的
单
元
替
代
。
如
果
o
f
f
s
e
t
和
l
e
n
g
t
h
的
组
合
结
果
是
不
会
移
除
任
何
值
,
则
r
e
p
l
a
c
e
m
e
n
t
数
组
中
的
单
元
将
被
插
入
到
o
f
f
s
e
t
指
定
的
位
置
。
注
意
替
换
数
组
中
的
键
名
不
保
留
。
如
果
用
来
替
换
r
e
p
l
a
c
e
m
e
n
t
只
有
一
个
单
元
,
那
么
不
需
要
给
它
加
上
a
r
r
a
y
(
)
,
除
非
该
单
元
本
身
就
是
一
个
数
组
,
一
个
对
象
或
者
N
U
L
L
。
返
回
值
:
返
回
一
个
包
含
有
被
移
除
单
元
的
数
组
。
栗
子
:
(
用
同
样
的
方
式
修
改
i
n
p
u
t
)
/
/
添
加
两
个
新
元
素
到
input)作为length。 replacement:如果给出了replacement数组,则被移除的单元被此数组中的单元替代。 如果offset和length的组合结果是不会移除任何值,则replacement数组中的单元将被插入到offset指定的位置。注意替换数组中的键名不保留。 如果用来替换replacement只有一个单元,那么不需要给它加上array(),除非该单元本身就是一个数组,一个对象或者NULL。 返回值: 返回一个包含有 被移除单元的数组。 栗子:(用同样的方式修改input) // 添加两个新元素到
input)作为length。replacement:如果给出了replacement数组,则被移除的单元被此数组中的单元替代。如果offset和length的组合结果是不会移除任何值,则replacement数组中的单元将被插入到offset指定的位置。注意替换数组中的键名不保留。如果用来替换replacement只有一个单元,那么不需要给它加上array(),除非该单元本身就是一个数组,一个对象或者NULL。返回值:返回一个包含有被移除单元的数组。栗子:(用同样的方式修改input)//添加两个新元素到input
array_push($input,$x,$y);
array_splice($input,count($input),0,array($x,$y));
// 移除
i
n
p
u
t
中
的
最
后
一
个
元
素
‘
‘
a
r
r
a
y
p
o
p
(
input中的最后一个元素 ``array_pop(
input中的最后一个元素‘‘arraypop(input);array_splice($input,-1);
//移除 $input中的第一个元素
array_shift(
i
n
p
u
t
)
;
‘
‘
‘
‘
a
r
r
a
y
s
p
l
i
c
e
(
input);`` ``array_splice(
input);‘‘‘‘arraysplice(input,0,1);//在$input的开头插入一个元素
array_unshift(
i
n
p
u
t
,
input,
input,x,
y
)
;
‘
‘
‘
‘
a
r
r
a
y
s
p
l
i
c
e
(
y);`` ``array_splice(
y);‘‘‘‘arraysplice(input,0,0,array(
x
,
x,
x,y));//在$input的索引$x处替换值
i
n
p
u
t
[
input[
input[x] =
y
;
‘
‘
‘
‘
a
r
r
a
y
s
p
l
i
c
e
(
y;`` ``array_splice(
y;‘‘‘‘arraysplice(input,
x
,
1
,
x,1,
x,1,y);``
12、array_sum:对数组中的所有值求和
number array_sum(array $array)
array_sum()将数组中的所有值相加,并返回结果。
13、array_unique:移除数组中重复的值
array array_unique( array $array [ , int $sort_flags= SORT_STRING ] )
array_unique()接受array作为输入并返回没有重复值的新数组。
键名保留不变,array_unique()先将值作为字符串排序,然后对每个值只保留第一个遇到的键名,接着忽略所有后面的键名。这并不意味着在未排序的array中同一个值的第一个出现的键名会被保留。
14、array_unshift:在数组的开头插入一个或多个单元
int array_unshift ( array &$array , mixed $value1 [, mixed $... ] )
array_unshift() 将传入的单元插入到array数组的开头。单位是作为整体插入的,因此被传入单元将保持同样的顺序。所有的数值键值名将修改为从零开始计数,所有的文字键名保持不变。
15、array_values:返回数组中所有的值
array array_value(array $array)
array_values() 返回input数组中所有的值并给其建立数字索引
参数:array:数组。
返回值:返回含有所有值的索引数组。
栗子:
$array = array("size" => "XL", "color" => "gold");
print_r(array_values($array));
结果:
Array
(
[0] => XL
[1] => gold
)
16、compact:建立一个数组,包括变量名和他们的值
array compact( mixed $varname1 [, mixed $... ])
创建一个包含变量的数组
对于每个参数,compact在当前符号表中查找改变量并将它添加到输出的数组中,变量名成为键名而变量的内容成为该键的值。
compact() 函数创建一个由参数所带变量组成的数组。如果参数中存在数组,该数组中变量的值也会被获取。
本函数返回的数组是一个关联数组,键名为函数的参数,键值为参数中变量的值。
与extract()相反。
栗子1:
$firstname = "Bill";
$lastname = "Gates";
$age = "60";
$result = compact("firstname", "lastname", "age");
print_r($result);
结果:Array ( [firstname] => Bill [lastname] => Gates [age] => 60 )
栗子2:使用不匹配的字符串以及变量名数组
$firstname = "Bill";
$lastname = "Gates";
$age = "60";
$name = array("firstname", "lastname");
$result = compact($name, "location", "age");
print_r($result);
结果:Array ( [firstname] => Bill [lastname] => Gates [age] => 60 )
17、count:计算数组中的单元数目,或对象中的属性个数
int count(mixed $array_or_countable [, int $mode =COUNT_NORMAL])
统计出数组里的所有元素的数量,或者是对象里的东西。