PHP之数组
1、array_change_key_case() 函数、
用法:将数组的所有键转成大写或者小写。
语法: array_change_key_case(array, case);
参数:array:必需,要转换的数组;
case:可选,CASE_LOWER - 默认值。将数组的键转换为小写字母。CASE_UPPER - 将数组的键转换为大写字母。
$arr = array('Name' => 'xiaoming', 'Age' => 23, 'sex' => 'boy'); print_r(array_change_key_case($arr)); //转小写 print_r(array_change_key_case($arr, CASE_UPPER)); //转大
2、array_chunk() 函数
用法:把数组分割成新的数组快
语法:array_chunk(array, size, key);
参数:array: 必需,要分割的数组
size:必需,分割后每个数组包含多少个元素,整数
key:可选,true 保留原来的键名,false 默认,每个新数组使用从零开始的索引。
$arr = array('Name' => 'xiaoming', 'Age' => 23, 'sex' => 'boy'); print_r(array_chunk($arr, 2, true)); //保留键名 print_r(array_chunk($arr, 2, false)); //默认
3、array_column函数
用法:返回数组中某个单一列的值
语法:array_column(array, key, index);
参数:array: 必需, 多维数组
key:必需,需要返回的列
index: 可选, 作为返回数组的键
1 $arr = array( 2 array('id' => 1, 'first_name' => 'Peter', 'last_name' => 'Griffin',), 3 array('id' => 2, 'first_name' => 'Ben', 'last_name' => 'Smith',), 4 array('id' => 3, 'first_name' => 'Joe', 'last_name' => 'Doe',) 5 ); 6 print_r(array_column($arr, 'last_name')); 7 print_r(array_column($arr, 'last_name', 'id'));
4、array_combine() 函数
用法:合并两个数组为新数组,其中一个数组元素为键值,另一个为元素
语法:array_combine(keys, values);(两数组的长度必需一致)
参数:keys: 必需,新数组的键名
values:必需,新数组的元素
$arr1 = array('red', 'green', 'blue'); $arr2 = array('红', '绿', '蓝'); print_r(array_combine($arr1, $arr2));
5、array_count_values() 函数
用法:统计数组中所有值出现的次数
语法:array_count_values(array);
参数:array: 必需,需要统计的数组
$arr = array('red', 'green', 'blue', 'green'); print_r(array_count_values($arr));
6、array_diff() 函数
用法:比较两个或多个数组的键值,返回差集
语法:array_diff(array1, array2, array3...);
参数:array1: 必需,做比较的第一个数组
array2: 必需,与array1比较的数组
array3:可选,与array1比较的其他数组
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $a2=array("e"=>"red","f"=>"black","g"=>"purple"); $a3=array("a"=>"red","b"=>"black","h"=>"yellow"); print_r(array_diff($a1, $a2)); print_r(array_diff($a1, $a2, $a3));
7、array_diff_assoc() 函数
用法:用法跟array_diff()一样,较两个或多个数组的键名和键值,返回差集
语法:array_diff_assoc(array1, array2, array3...);
参数:array1: 必需,做比较的第一个数组
array2: 必需,与array1比较的数组
array3:可选,与array1比较的其他数组
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $a2=array("c"=>"red","f"=>"black","g"=>"purple"); $a3=array("a"=>"red","b"=>"black","h"=>"yellow"); print_r(array_diff_assoc($a1, $a2)); print_r(array_diff_assoc($a1, $a2, $a3));
8、array_diff_key() 函数
用法,语法,参数跟array_diff() 一样,区别在于比较键名
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $a2=array("c"=>"red","f"=>"black","g"=>"purple"); $a3=array("a"=>"red","b"=>"black","h"=>"yellow"); print_r(array_diff_key($a1, $a2)); print_r(array_diff_key($a1, $a2, $a3));
9、array_diff_uassoc() 函数
用法:用于比较两个(或更多个)数组的键名和键值 ,并返回差集, 该函数使用自定义函数比较
语法:array_diff_uassoc(array1, array2, array3...,function);
参数:array1: 必需,做比较的第一个数组
array2: 必需,与array1比较的数组
array3:可选,与array1比较的其他数组
function: 必需,一个定义了可调用比较函数的字符串。如果第一个参数 <, =, > 第二个参数,相应地比较函数必须返回一个 <, =, > 0 的整数。
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $a2=array("c"=>"red","f"=>"black","g"=>"purple"); $a3=array("a"=>"red","b"=>"black","h"=>"yellow"); print_r(array_diff_uassoc($a1, $a2, 'compare')); print_r(array_diff_uassoc($a1, $a2, $a3, 'compare')); function compare($a, $b){ if ($a == $b) { return 0; } return $a > $b ? 1 : -1; }
10、array_diff_ukey() 函数
用法:用于比较两个(或更多个)数组的键名 ,并返回差集。
语法,参数跟array_diff_uassoc一致
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $a2=array("c"=>"red","f"=>"black","g"=>"purple"); $a3=array("a"=>"red","b"=>"black","h"=>"yellow"); print_r(array_diff_ukey($a1, $a2, 'compare')); print_r(array_diff_ukey($a1, $a2, $a3, 'compare')); function compare($a, $b){ if ($a == $b) { return 0; } return $a > $b ? 1 : -1; }
11、array_fill() 函数
用法:用给定的键值填充数组
语法:array_fill(index, number, value);
参数:index: 必需,数组的起始索引
number:必需,填充元素的个数,大于0
value:必需,填充元素的键值
$arr = array_fill(5, 2, '红'); print_r($arr);
12、array_fill_keys() 函数
用法:用给定的指定的键名的键值填充数组
语法:array_fill_keys(keys, value);
参数:keys:必需,数组,被填充数组的键名
value: 必需,填充数组的键值
$keys = array('a', 'b', 'c', 1); print_r(array_fill_keys($keys, 'red'));
13、array_filter() 函数
用法:使用回调函数过滤数组中的元素
语法:array_filter(array, function);
参数:array: 必需,要过滤的数组
function: 必需,要调用的函数
$arr = array('a', 'b', 'c', 1); print_r(array_filter($arr, 'callBack')); function callBack($var){ if ($var !== 1) { return $var; } }
14、array_flip() 函数
用法:用于反转或交换数组中的键名和对应关联的键值
语法:array_flip(array);
参数:array:必需,需要反转或交换的数组
$arr = array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); print_r(array_flip($arr));
15、array_intersect() 函数、array_intersect_assoc() 函数、array_intersect_key() 函数、array_intersect_uassoc() 函数、array_intersect_ukey() 函数
该5个函数的用法与array_diff() 函数、array_diff_assoc() 函数、array_diff_key() 函数、array_diff_uassoc() 函数、 array_diff_ukey() 函数类似,区别在于返回的是两个数组的交集
16、array_key_exists() 函数
用法:判断数组中是否存在指定的键名
语法:array_key_exists(key, array);
参数:key:必需,指定的键名
array:必需,用于判断的数组
$arr = array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); echo array_key_exists('c', $arr) ? 'true' : 'false';
17、array_keys() 函数
用法:返回一个包含有数组键名的新数组
语法:array_keys(array, value, strict);
参数:array:必需,数组,
value:可选,指定键值,只返回指定键值的键名
strict: 可选,true - 返回带有指定键值的键名。依赖类型,数字 5 与字符串 "5" 是不同的。false - 默认值。不依赖类型,数字 5 与字符串 "5" 是相同的。
$arr = array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); print_r(array_keys($arr)); print_r(array_keys($arr, 'green')); print_r(array_keys($arr, 'green', false));
18、array_map() 函数
用法:将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新的值的数组。
语法:array_map(function, array1, array2, array3..);
参数:function:必需,自定义函数名称,或者为null
array1:必需,规定的数组
array2: 可选,数组
$arr = array(1, 2, 3, 4, 5); print_r(array_map('add', $arr)); function add($v){ return $v + 1; }
19、array_merge() 函数
用法:用于将一个或多个数组合并成一个数组
语法:array_merage(array1, array2, array3...);
参数:array1:必需,规定数组
array2,array3:可选,规定数组
$arr1 = array(1, 2, 3, 4, 5); $arr2 = array('a', 'b', 'c'); print_r(array_merge($arr1, $arr2));
20、array_merge_recursive() 函数
用法:

浙公网安备 33010602011771号