【每日函数】每日函数(2021.08.08)

一梦千年系列

array_intersect_key1

只比较键名计算数组的交集

  1. 说明
array_intersect_key(array $array1, array $array2, array ...) : array
  1. 参数

array1要检查的数组

array2用于比较的数组

...更多用户比较的数组

  1. 返回值

返回一个数组,键名存在于array1,同时也存在于其它用户比较的数组中

  1. 范例
$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
)
  1. 特别注意

只是比较键名,不比较键值,所以上面的范例中,键名都有name、age,虽然键值不同,也算交集

一梦千年系列

array_intersect_ukey2

只比较键名计算交集,比较方式使用用户自定义函数

  1. 说明
array_intersect_ukey(array $array1, array $array2, array ..., callback $func) : array
  1. 参数

array1要检查的数组

array2用于比较的数组

...更多用户比较的数组

func用户自定义比较的函数

  1. 返回值

返回一个数组,键名即存在于array1中,也存在于其它数组中,键名的比较方式是用户自定义函数

  1. 范例
$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
)
  1. 特别说明

只比较键名,使用用户自定义的函数比较键名

一梦千年系列

array_intersect3

计算数组的交集,只比较键值,保留键名

  1. 说明
array_intersect(array $array1, array $array2, array ...) : array
  1. 参数

array1要检查的数组

array2用于比较的数组

...更多用于比较的数组

  1. 返回值

返回一个数组,键值相同的交集数组

  1. 范例
$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
)
  1. 特别说明

计算交集只比较键值

一梦千年系列

array_key_exists4

检查数组中是否有指定的键名

  1. 说明
array_key_exist(mixed $key, array $array) : bool

数组array中有键名key时返回true,否则返回false

  1. 参数

key要检查的键名

array要检查的数组

  1. 返回值

返回布尔值,检查到键名返回true,否则返回false

  1. 范例
$array = [
    'name' => 'swk',
    'age' => 22,
    'sex' => 1
];

$key = 'name';

$res = array_key_exists($key, $array);

var_dump($res);

以上范例输出

bool(true)
  1. 特别说明

虽然说第二个数组参数也可以传对象,但是不建议,如果判断对象中是否有属性,则使用property_exists

一梦千年系列

array_key_first5

获取数组的第一个键名

  1. 说明
array_key_first(array $array) : mixed
  1. 参数

array要操作的数组

  1. 返回值

返回一个有效的键名,如果是空数组,则返回null

  1. 范例
$array = [
    'name' => 'swk',
    'age' => 22,
    'sex' => 1
];

$res = array_key_first($array);

var_dump($res);

以上范例输出

string(4) "name"
  1. 特别说明

获取数组的第一个键名,如果数组为空,则返回null