一梦千年系列
只比较键名计算数组的交集
array_intersect_key(array $array1, array $array2, array ...) : array
array1
要检查的数组
array2
用于比较的数组
...
更多用户比较的数组
返回一个数组,键名存在于array1,同时也存在于其它用户比较的数组中
$array1 = [
‘name‘ => ‘swk‘,
‘age‘ => 22,
‘sex‘ => 1
];
$array2 = [
‘name‘ => ‘zbj‘,
‘age‘ => 23,
‘height‘ => 176
];
$newArray = array_intersect_key($array1, $array2);
print_r($newArray);
以上范例会输出
Array
(
[name] => swk
[age] => 22
)
只是比较键名,不比较键值,所以上面的范例中,键名都有name、age,虽然键值不同,也算交集
一梦千年系列
只比较键名计算交集,比较方式使用用户自定义函数
array_intersect_ukey(array $array1, array $array2, array ..., callback $func) : array
array1
要检查的数组
array2
用于比较的数组
...
更多用户比较的数组
func
用户自定义比较的函数
返回一个数组,键名即存在于array1中,也存在于其它数组中,键名的比较方式是用户自定义函数
$array1 = [
‘name‘ => ‘swk‘,
‘age‘ => 22,
‘sex‘ => 1
];
$array2 = [
‘name‘ => ‘zbj‘,
‘age‘ => 23,
‘sex‘ => 2
];
function func($a, $b)
{
return 0;
}
$newArray = array_intersect_ukey($array1, $array2, ‘func‘);
print_r($newArray);
以上范例输出
Array
(
[name] => swk
[age] => 22
[sex] => 1
)
只比较键名,使用用户自定义的函数比较键名
一梦千年系列
计算数组的交集,只比较键值,保留键名
array_intersect(array $array1, array $array2, array ...) : array
array1
要检查的数组
array2
用于比较的数组
...
更多用于比较的数组
返回一个数组,键值相同的交集数组
$array1 = [
‘name‘ => ‘swk‘,
‘age‘ => 22,
‘sex‘ => 1
];
$array2 = [
‘nickname‘ => ‘swk‘,
‘age‘ => 23,
‘sex‘ => 1
];
$newArray = array_intersect($array1, $array2);
print_r($newArray);
以上范例输出
Array
(
[name] => swk
[sex] => 1
)
计算交集只比较键值
一梦千年系列
检查数组中是否有指定的键名
array_key_exist(mixed $key, array $array) : bool
数组array中有键名key时返回true,否则返回false
key
要检查的键名
array
要检查的数组
返回布尔值,检查到键名返回true,否则返回false
$array = [
‘name‘ => ‘swk‘,
‘age‘ => 22,
‘sex‘ => 1
];
$key = ‘name‘;
$res = array_key_exists($key, $array);
var_dump($res);
以上范例输出
bool(true)
虽然说第二个数组参数也可以传对象,但是不建议,如果判断对象中是否有属性,则使用property_exists
一梦千年系列
获取数组的第一个键名
array_key_first(array $array) : mixed
array
要操作的数组
返回一个有效的键名,如果是空数组,则返回null
$array = [
‘name‘ => ‘swk‘,
‘age‘ => 22,
‘sex‘ => 1
];
$res = array_key_first($array);
var_dump($res);
以上范例输出
string(4) "name"
获取数组的第一个键名,如果数组为空,则返回null
原文:https://www.cnblogs.com/leruge/p/15114335.html