1、array_column() 返回数组总某个单一列的值
用法:array_column(array , column_key , index_key);
参数:① array---规定要使用的多维数组(必选)
② column_key---需要返回值的列,可以是索引数组的整数索引,或者关联数组的列的字符串键值。
该参数也可以是null,此时将返回整个数组(配合index_key)参数来重置数组键时候, 非常有用)
③ index_key---用作返回数组的索引/键的列(可选)
实例:
// 表示由数据库返回的可能记录集的数组
$a = array(
array(
'id' => 5698,
'first_name' => 'Bill',
'last_name' => 'Gates',
),
array(
'id' => 4767,
'first_name' => 'Steve',
'last_name' => 'Jobs',
)
array(
'id' => 3809,
'first_name' => 'Mark',
'last_name' => 'Zuckerberg',
)
);
$last_names = array_column($a, 'last_name', 'id');
print_r($last_names);
输出:
Array
(
[5698] => Gates
[4767] => Jobs
[3809] => Zuckerberg
)
2、array_combine()通过合并两个数组来创建一个新数组,其中一个数组是键名,另一个数组的值为键值
注意:键名数组和键值数组的元素个数必须相同,其中一个数组为空,或者两个数组的元素个数不同,则该函数返回false
用法:array_combine(keys , values);
参数:① keys---键名数组(必选)
② values---键值数组(必选)
实例:
$fname=array("Bill","Steve","Mark");
$age=array("60","56","31");
$c=array_combine($fname,$age);
print_r($c);
输出:
Array ( [Bill] => 60 [Steve] => 56 [Mark] => 31 )
3、array_count_values()函数对数组中的所有值进行计数
用法:array_count_values(array)
本函数返回一个数组,其元素的键名是原数组的值,键值是该值在原数组中出现的次数
参数:规定需要对值进行计数的数组(必选)
实例:
$a=array("A","Cat","Dog","A","Dog");
print_r(array_count_values($a));
输出:
Array ( [A] => 2 [Cat] => 1 [Dog] => 2 )
4、array_diff()比较两个数组并返回差集
用法:array_diff(array1 , array2 , array3...)
函数返回两个数组的差集数组。该数组包括了所有在被比较的数组中,
但是不在任何其他参数书组中的键值,在返回数组中,键名保持不变
参数:① array1---与其他数组进行比较的第一个数组(必选)
② array2---与第一个数组进行比较的数组
实例:
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"green","g"=>"blue");
$result=array_diff($a1,$a2);
print_r($result);
输出:
Array ( [d] => yellow )
同类:
① array_diff_assoc()返回差集(比较键名和数组)
② array_diff_key()(只比较键名)
5、array_key_exists()检查某个数组中是否存在指定的键名
用法:array_key_exists(key , array)
如果键存在则返回true,否则返回false
参数:① key---规定键名(必选)
② array---规定数组(必选)
实例:
$a=array("Volvo"=>"XC90","BMW"=>"X5");
if (array_key_exists("Volvo",$a))
{
echo "键存在!";
}
else
{
echo "键不存在!";
}
输出:
键存在!
6、array_merge()把两个数组合并为一个数组
用法:array_merge(array1 , array2 , array3...)
注意:如果两个或更多个数组元素有相同的键名,则最后的元素会覆盖其他元素
实例:
$a1=array("a"=>"red","b"=>"green");
$a2=array("c"=>"blue","b"=>"yellow");
print_r(array_merge($a1,$a2));
输出:
Array ( [a] => red [b] => yellow [c] => blue )
7、array_merge_recursive()把一个或多个数组合并为一个数组
用法:array_merge_recursive(array1 , array2 , array3 ...)
注意:该函数与array_merge()的区别在于处理两个或更多个数组元素有相同的键名时。
array_merge_recursive()不会进行键名覆盖,而是将多个相同键名的值递归成一个数组
实例:
$a1=array("a"=>"red","b"=>"green");
$a2=array("c"=>"blue","b"=>"yellow");
print_r(array_merge_recursive($a1,$a2));
输出:
Array ( [a] => red [b] => Array ( [0] => green [1] => yellow ) [c] => blue )
8、array_reverse()以相反的元素顺序返回数组
用法:array_reverse(array , preserve)将原数组中的元素顺序翻转,创建新的数组并返回
参数:①array---规定数组(必须)
②preserve---规定是否保留原始数组的键名(true,false)
实例:
$a=array("a"=>"Volvo","b"=>"BMW","c"=>"Toyota");
print_r(array_reverse($a));
输出:
Array ( [c] => Toyota [b] => BMW [a] => Volvo )
9、in_array()搜索数组中是否存在指定的值
用法:in_array(search , array , type)
参数:① search---规定在数组搜索的值(必需)
② array---规定要搜索的数组(必需)
③ type---如果设置该参数为true,则检查搜索的数据与数组的值的类型是否相同(可选)
注意:如果给定的值search存在于数组array中则返回true。
如果第三个参数设置为true,函数只有在元素存在于数组中且数据类型与给定值相同时才返回true。
如果search参数是字符串,且type参数设置为true,则搜索区分大小写
实例:
$people = array("Bill", "Steve", "Mark", "David");
if (in_array("Mark", $people))
{
echo "匹配已找到";
}
else
{
echo "匹配未找到";
}
输出:
匹配已找到
10、count()返回数组中元素的数目
用法:count(array , mode)
参数:① array--规定数组(必需)
② mode---规定模式,可能值有:
0-默认,不对多维数组中的所有元素进行计数
1-递归地计数数组中元素的数目(计算多维数组中的所有元素)
实例:
$cars=array
(
"Volvo"=>array
(
"XC60",
"XC90"
),
"BMW"=>array
(
"X3",
"X5"
),
"Toyota"=>array
(
"Highlander"
)
);
echo "常规计数:" . count($cars)."<br>";
echo "递归计数:" . count($cars,1);
输出:
常规计数:3
递归计数:8