1. array_chunk
定义
把数组分割为新的数组块。每个数组的单元数目由 size 参数决定。最后一个数组的单元数目可能会少几个。
可选参数 preserve_key 是一个布尔值,它指定新数组的元素是否有和原数组相同的键(用于关联数组),还是从 0 开始的新数字键(用于索引数组)。默认是分配新的键名。
语法
array_chunk(array,size,preserve_key);
参数
描述
array
必需。规定要使用的数组。
size
必需。整数值,规定每个新数组包含多少个元素。
preserve_key
可选。可能的值:true - 保留原始数组中的键名。false - 默认。每个结果数组使用从零开始的新数组索引。
例子$array=['a','b','c','d','e5'=>'a',[1,2,3,4]];
$arr=array_chunk($array,4);
printf('
%s
',print_r($arr,true));
-------------------------------
//输出结果
Array
(
[0]=>Array
(
[0]=>a
[1]=>b
[2]=>c
[3]=>d
)
[1]=>Array
(
[0]=>a
[1]=>Array
(
[0]=>1
[1]=>2
[2]=>3
[3]=>4
)
)
)
2. array_key_exists
定义
检查某个数组中是否存在指定的键名,如果键名存在则返回 true,如果键名不存在则返回 false。
语法
array_key_exists(key,array)
参数
描述
key
必需,规定键名
array
必须,规定数组
例子$array=['a','b','c','d','e5'=>'a',[1,2,3,4]];
var_dump(array_key_exists('e5',$array));
echo'
';
var_dump(array_key_exists('2',$array));
-------------------------------
//输出结果
booleantrue
booleantrue
3. array_keys
定义
返回包含数组中所有键名的一个新数组
如果提供了第二个参数,则只返回键值为该值的键名
如果 strict 参数指定为 true,则严格检查键值的据类型(例如: 1与”1”是不同的)
语法
array_keys(array,value,strict)
参数
描述
array
必须,规定数组
value
可选,可指定键值然后返回键值对应的键名
strict
可选,与value参数一起使用,为true时对类型精选严格比较
例子$array=['a','b','c','d','e5'=>'a',[1,2,3,4]];
$arr=array_keys($array,'a');
printf('
%s
',print_r($arr,true));
$arr=array_keys($array);
printf('
%s
',print_r($arr,true));
-------------------------------
//输出结果
Array
(
[0]=>0
[1]=>e5
)
Array
(
[0]=>0
[1]=>1
[2]=>2
[3]=>3
[4]=>e5
[5]=>4
)
4. array_rand
定义
返回数组中的一个随机键名,也可以指定数量,返回包含随机建名的数组
语法
array_rand(array,number)
参数
描述
array
必须,规定数组
number
可选,规定返回多少个随机元素
例子$array=['a','b','c','d','e5'=>'a',[1,2,3,4]];
$arr=array_rand($array);
printf('
%s
',print_r($arr,true));
$arr=array_rand($array,3);
printf('
%s
',print_r($arr,true));
-------------------------------
//输出结果
4
Array
(
[0]=>0
[1]=>2
[2]=>3
)
5. array_merge
定义
把一个或多个数组合并为一个数组并返回
索引数组键名相同时不会被合并成数组,而是被排序到数组的尾部
关联数组键名相同时,最后的元素会覆盖其他元素
语法
array_merge(array1,array2,array3...)
参数
描述
array1
必需,规定数组
array2
可选,规定数组
array3
可选,规定数组
例子$array=['a','b','a'=>[1,2,'z'=>3,4],'y2'=>'c','d','e5'=>'a'];
$array2=['e5'=>'123','s','y2'=>'yy',564,'a'=>[1,2,'z'=>3,'a','b','c']];
$arr=array_merge($array,$array2);
printf('
%s
',print_r($arr,true));
-------------------------------
//输出结果
Array
(
[0]=>a
[1]=>b
[a]=>Array
(
[0]=>1
[1]=>2
[z]=>3
[2]=>a
[3]=>b
[4]=>c
)
[y2]=>yy
[2]=>d
[e5]=>123
[3]=>s
[4]=>564
)
6. array_merge_recursive
定义
把一个或多个数组合并为一个数组并返回
索引数组键名相同时不会被合并成数组,而是被排序到数组的尾部
关联数组键名相同时,会把对应的键值合并成索引数组
该函数与 array_merge() 函数的区别在于处理多维数组会对元素进行覆盖
语法
array_merge_recursive(array1,array2,array3...)
参数
描述
array1
必须,规定数组
array2
可选,规定数组
array3...
可选,规定数组
例子$array=['a','b','a'=>[1,2,'z'=>3,4],'y2'=>'c','d','e5'=>'a'];
$array2=['e5'=>'123','s','y2'=>'yy',564,'a'=>[1,2,'z'=>3,'a','b','c']];
$arr=array_merge_recursive($array,$array2);
printf('
%s
',print_r($arr,true));
-------------------------------
//输出结果
Array
(
[0]=>a
[1]=>b
[a]=>Array
(
[0]=>1
[1]=>2
[z]=>Array
(
[0]=>3
[1]=>3
)
[2]=>4
[3]=>1
[4]=>2
[5]=>a
[6]=>b
[7]=>c
)
[y2]=>Array
(
[0]=>c
[1]=>yy
)
[2]=>d
[e5]=>Array
(
[0]=>a
[1]=>123
)
[3]=>s
[4]=>564
)
7. array_replace
定义
使用后面数组的值替换第一个数组的值,返回被替换的数组
如果传递了多个替换数组,它们将被按顺序依次处理,后面数组的值将覆盖之前数组的值
语法
array_replace(array1,array2,array3...)
参数
描述
array1
必需,指定一个数组
array2
可选,指定一个要替换 array1 的值的数组
array3,...
可选,指定多个要替换 array1 和 array2, … 的值的数组,后面数组的值将覆盖之前数组的值
例子$array=['a','b','a'=>[1,2,'a6'=>666,'z'=>9,4],'y2'=>'c','d','e5'=>'a'];
$array2=['e5'=>'123','s','y2'=>'yy',564,'a'=>[1,2,'z'=>3,'a','b','c']];
$arr=array_replace($array,$array2);
printf('
%s
',print_r($arr,true));
-------------------------------
//输出结果
Array
(
[0]=>s
[1]=>564
[a]=>Array
(
[0]=>1
[1]=>2
[z]=>3
[2]=>a
[3]=>b
[4]=>c
)
[y2]=>yy
[2]=>d
[e5]=>123
)
8. array_replace_recursive
定义
递归地使用后面数组的值替换第一个数组的值,返回被替换的数组
该函数与array_replace()的区别是
array_replace 不会处理二级,只会把VALUE看成一个整体
array_replace_recursive会对多维数组进行操作
语法
array_replace_recursive(array1,array2,array3...)
参数
描述
array1
必需,指定一个数组
array2
可选,指定一个要替换 array1 的值的数组
array3,...
可选,指定多个要替换 array1 和 array2, … 的值的数组,后面数组的值将覆盖之前数组的值
例子$array=['a','b','a'=>[1,2,'a6'=>666,'z'=>9,4],'y2'=>'c','d','e5'=>'a'];
$array2=['e5'=>'123','s','y2'=>'yy',564,'a'=>[1,2,'z'=>3,'a','b','c']];
$arr=array_replace_recursive($array,$array2);
printf('
%s
',print_r($arr,true));
-------------------------------
//输出结果
Array
(
[0]=>s
[1]=>564
[a]=>Array
(
[0]=>1
[1]=>2
[a6]=>666
[z]=>3
[2]=>a
[3]=>b
[4]=>c
)
[y2]=>yy
[2]=>d
[e5]=>123
)
9 array_diff_key
定义
使用键名比较计算数组的差集
根据 array1 中的键名和 array2 进行比较,返回不同键名的数组
语法
array_diff_key(array1,array2)
参数
描述
array1
必需,指定一个数组
array2
可选,指定一个要在 array1 内去除的元素的数组
例子$array=['a','b','a'=>[1,2,'a6'=>666,'z'=>9,4],'y2'=>'c','d','e5'=>'a'];
$array2=['e5'=>'123','s','y2'=>'yy',564,'a'=>[1,2,'z'=>3,'a','b','c']];
$arr=array_diff_key($array,$array2);
printf('
%s
',print_r($arr,true));
-------------------------------
//输出结果
Array
(
[2]=>d
)
10 array_diff_assoc
定义
带索引检查计算数组的差集
返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值
语法
array_diff_assoc(array1,array2)
参数
描述
array1
必需,指定一个数组
array2
可选,指定一个要在 array1 内去除的元素的数组
例子$array=['a','b','a'=>[1,2,'a6'=>666,'z'=>9,4],'y2'=>'c','d','e5'=>'a'];
$array2=['e5'=>'123','s','y2'=>'c',564,'a'=>[1,2]];
$arr=array_diff_assoc($array,$array2);
printf('
%s
',print_r($arr,true));
-------------------------------
//输出结果
Array
(
[0]=>a
[1]=>b
[2]=>d
[e5]=>a
)