语法:array_column(array,column_key,index_key)
array:必需。指定要使用的多维数组(记录集)
column_key:必需。需要返回值的列
index_key:可选。作为返回数组的索引/键的列
返回值:返回一个数组,数组的值为输入数组中某个单一列的值
$arr = [
['name'=>'小明', 'sex'=>'男', 'age'=>18 ],
['name'=>'小红', 'sex'=>'女', 'age'=>16 ],
['name'=>'小王', 'sex'=>'男', 'age'=>17 ]
];
$newArr = array_column($arr, 'sex', 'name');
echo '<pre>';
print_r($newArr);
echo '</pre>';
语法:array_replace_recursive(array1,array2,array3…)
array1:必需。指定一个数组
array2:可选。指定一个要替换 array1 的值的数组
array3:可选。指定多个要替换 array1 和 array2, … 的值的数组。后面数组的值将覆盖之前数组的值
返回值:返回被替换的数组,如果发生错误则返回 NULL
$arr1 = [
['name'=>'小明', 'sex'=>'男', 'age'=>18 ],
['name'=>'小红', 'sex'=>'女', 'age'=>16 ],
['name'=>'小王', 'sex'=>'男', 'age'=>17 ]
];
$arr2 = [
['name'=>'小茜', 'sex'=>'女', 'age'=>17 ],
['name'=>'小华', 'sex'=>'男', 'age'=>19 ],
['name'=>'小赵', 'sex'=>'男', 'age'=>18 ]
];
$newArr1 = array_replace_recursive($arr1, $arr2);
echo '<pre>';
print_r($newArr1);
echo '</pre>';
语法:array_intersect(array1,array2,array3…)
array1:必需。与其他数组进行比较的第一个数组
array2:必需。与第一个数组进行比较的数组
array3:可选。与第一个数组进行比较的其他数组
返回值:返回一个交集数组,该数组包括了所有在被比较的数组(array1)中,同时也在任何其他参数数组(array2 或 array3 等等)中的键值
$arr3 = ['name'=>'小明', 'sex'=>'男', 'age'=>18 ];
$arr4 = ['name'=>'小红', 'sex'=>'女', 'age'=>18 ];
$newArr2 = array_intersect($arr3, $arr4);
echo '<pre>';
print_r($newArr2);
echo '</pre>';
语法:array_diff(array1,array2,array3…)
array1:必需。与其他数组进行比较的第一个数组
array2:必需。与第一个数组进行比较的数组
array3:可选。与第一个数组进行比较的其他数组
返回值:返回一个差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2 或 array3 等等)中的值
$arr5 = ['name'=>'小明', 'sex'=>'男', 'age'=>18, 'email'=>'xiaoming@qq.com' ];
$arr6 = ['name'=>'小红', 'sex'=>'女', 'age'=>18 ];
$arr7 = ['name'=>'小赵', 'sex'=>'男', 'age'=>18 ];
$newArr3 = array_diff($arr5, $arr6, $arr7);
echo '<pre>';
print_r($newArr3);
echo '</pre>';
语法:array_merge(array1,array2,array3…)
array1:必需。规定数组
array2:可选。规定数组
array3:可选。规定数组
返回值:返回合并的数组
$arr8 = ['name'=>'小明', 'sex'=>'男', 'age'=>18 ];
$arr9 = ['phone'=>'13785459358', 'email'=>'xiaoming@qq.com', 'address'=>'北京'];
$newArr4 = array_merge($arr8, $arr9);
echo '<pre>';
print_r($newArr4);
echo '</pre>';
语法:array_chunk(array,size,preserve_keys)
array1:必需。规定要使用的数组
size:必需。一个整数,规定每个新数组块包含多少个元素
preserve_keys:可选。布尔值,rue - 保留原始数组中的键名,false - 默认。每个新数组块使用从零开始的索引
返回值:返回一个多维的数值数组,从 0 开始,每个维度都包含 size 元素
$arr10 = ['name'=>'小明', 'sex'=>'男', 'age'=>18, 'phone'=>'13785459358', 'email'=>'xiaoming@qq.com', 'address'=>'北京' ];
$newArr5 = array_chunk($arr10, 3, true);
echo '<pre>';
print_r($newArr5);
echo '</pre>';
语法:array_fill(index,number,value)
index:必需。规定返回数组的起始索引
number:必需。规定填充的元素的数量,其值必须大于 0
value:可选。必需。规定用于填充数组的键值
返回值:返回填充的数组
$arr11 = array_fill(2, 4, '你好');
echo '<pre>';
print_r($arr11);
echo '</pre>';
语法:array_fill_keys(keys,value)
keys:必需。数组,其值将被用于填充数组的键名
value:必需。规定用于填充数组的键值
返回值:返回填充的数组
$keys = ['n1', 'n2', 'n3'];
$arr12 = array_fill_keys($keys, 18);
echo '<pre>';
print_r($arr12);
echo '</pre>';
语法:array_pad(array,size,value)
array:必需。数组,其值将被用于填充数组的键名
size:必需。规定用于填充数组的键值
value:必需。规定从函数返回的数组中新元素的值
返回值:返回带有新元素的数组
$arr13 = ['小明', '男', 18];
$newArr6 = array_pad($arr13, 5, 13785459358);
echo '<pre>';
print_r($newArr6);
echo '</pre>';
语法:extract(array,extract_rules,prefix)
array:必需。规定要使用的数组
extract_rules:可选。extract() 函数将检查每个键名是否为合法的变量名,同时也检查和符号表中已存在的变量名是否冲突。
prefix:可选。规定前缀,前缀和数组键名之间会自动加上一个下划线
返回值:返回成功设置的变量数目
$arr14 = ['name'=>'小明', 'sex'=>'男', 'age'=>18, 'phone'=>'13785459358'];
extract($arr14);
echo "<br>\$name = $name; \$sex = $sex; \$age = $age; \$phone = $phone";
语法:array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )
array:必需。规定要过滤的数组
callback:可选。规定要用的回调函数
flag:可选。决定 callback 接收的参数形式,ARRAY_FILTER_USE_KEY - callback 接受键名作为的唯一参数,ARRAY_FILTER_USE_BOTH - callback 同时接受键名和键值
返回值:返回过滤的数组
$arr = [10, 11, 12, 13, 14, 15];
$newArr = array_filter($arr, function($n){
return $n > 11 && $n < 14;
});
echo '<pre>';
print_r($newArr);
echo '</pre>';
语法:array_map(myfunction,array1,array2,array3…)
myfunction:必需。用户自定义函数的名称,或者是 null
array1:必需。规定数组
array2:必需。规定数组
array3:必需。规定数组
返回值:返回包含用户自定义函数作用后的 array1 的值的数组
$arr1 = [10, 11, 12, 13, 14, 15];
$arr2 = [15, 16, 17, 18, 19, 21];
echo '<pre>';
print_r(array_map(function($n1, $n2){
if ($n2 - $n1 === 5) {
return '等于5';
} else {
return "不等于5";
};
}, $arr1, $arr2));
echo '</pre>';
语法:array_walk(array,myfunction,parameter…)
array:必需。规定数组
myfunction:必需。用户自定义函数的名称
parameter…:可选。规定用户自定义函数的参数,您可以为函数设置一个或多个参数
返回值:如果成功则返回 TRUE,否则返回 FALSE
$arr3 = ['name'=>'小明', 'sex'=>'男', 'age'=>18];
function callback(&$value, $key) {
switch ($key) :
case $key === 'name':
return $value = '小红';
case $key === 'sex':
return $value = '女';
case $key === 'age':
return $value = 17;
default:
echo 'error';
endswitch;
}
if (array_walk($arr3, 'callback')){
echo '<pre>';
print_r($arr3);
echo '</pre>';
} else {
echo 'failed';
};
echo '4. array_reduce():迭代处理数组元素';
语法:array_reduce(array,myfunction,initial)
array:必需。规定数组
myfunction:必需。规定函数的名称
initial:可选。规定发送到函数处理的第一个值
返回值:返回结果值
echo '<br>';
$arr4 = ['小明', '小红', '小王'];
function callback1($v1, $v2) {
return $v1.','.$v2;
}
echo array_reduce($arr4, 'callback1', '姓名:');
语法:array_slice(array,start,length,preserve)
array:必需。规定数组
start,:必需。数值。规定取出元素的开始位置
length:可选。数值。规定被返回数组的长度
preserve:可选。规定函数是保留键名还是重置键名
返回值:返回数组中的选定部分
$arr = ['name'=>'小明', 'sex'=>'男', 'age'=>18, 'phone'=>'13785459358', 'email'=>'xiaoming@qq.com', 'address'=>'北京' ];
echo '<pre>';
print_r(array_slice($arr, 3, 2, true));
echo '</pre>';
语法:array_splice(array,start,length,array)
array:必需。规定数组
start,:必需。数值。规定删除元素的开始位置
length:可选。数值。规定被移除的元素个数
array:可选。规定带有要插入原始数组中元素的数组
返回值:返回包含被提取元素的数组
$arr1 = ['name'=>'小明', 'sex'=>'男', 'age'=>18, 'phone'=>'13785459358', 'email'=>'xiaoming@qq.com', 'address'=>'北京' ];
array_splice($arr1, 3, 2, ['school'=>'北京大学', 'class'=>'软件工程一班']);
echo '<pre>';
print_r($arr1);
echo '</pre>';