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

一梦千年系列

今日函数array_uintersectarray_uniquearray_unshiftarray_valuesarray_walk_recursive

array_uintersect1

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

  1. 说明
array_uintersect(array $array, array ..., callback $func) : array
  1. 参数

array计算交集的原数组

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

func比较键值是否相同的自定义函数

  1. 返回值

返回一个交易数组,只比较键值,使用自定义函数比较

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

$array2 = [
    'name' => 'zbj',
    'age' => 22,
    'sex' => 2
];

function func($a, $b) {
    return 0;
}

$newArray = array_uintersect($array1, $array2, 'func');

print_r($newArray);

以上范例会输出

Array
(
    [name] => swk
    [age] => 22
    [sex] => 1
)
  1. 特别注意

只比较键值,用户自定义函数比较的时候返回0表示相同,非0表示不同

array_unique2

移除数组中重复的值

  1. 说明
array_unique(array $array, int $sort_flags = SORT_STRING) : array
  1. 参数

array需要操作的数组

sort_flags移除重复的键值项的时候,需要先进行键值排序,后面的被移除到,这个参数是决定排序的,一般用不到

  1. 返回值

返回一个数组,把重复的键值项移除掉

  1. 范例
$array = [4, 1, 7, 1, 9, 4];

$newArray = array_unique($array);

print_r($newArray);

以上范例输出

Array
(
    [0] => 4
    [1] => 1
    [2] => 7
    [4] => 9
)
  1. 特别说明

移除数组中重复的值

array_unshift3

向数组开头插入一个或者多个值

  1. 说明
array_unshift(array &$array, mixed ...) : int
  1. 参数

array需要操作的数组

...插入的值

  1. 返回值

返回新数组元素的个数

  1. 范例
$array = [4, 1, 7];

array_unshift($array, 1, 2);

print_r($array);

以上范例输出

Array
(
    [0] => 1
    [1] => 2
    [2] => 4
    [3] => 1
    [4] => 7
)
  1. 特别说明

向数组开头插入一个或者多个值

array_values4

返回数组中所有的值组成的新数组

  1. 说明
array_values(array $array) : array
  1. 参数

array需要操作的数组

  1. 返回值

返回一个新数组,只包含原数组的键值

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

$newArray = array_values($array);

print_r($newArray);

以上范例输出

Array
(
    [0] => swk
    [1] => 22
    [2] => 1
)
  1. 特别说明

返回数组中所有值组成的索引数组

array_walk_recursive5

对数组中每个元素递归的执行回调函数

  1. 说明
array_walk_recursive(array &$array, callback $func, mixed $customer_data = null) : bool
  1. 参数

array需要操作的数组

func默认情况接受俩个参数,键值和键名,如果customer_data有值,则是第三个参数

customer_data用户自定义数据

  1. 返回值

成功是返回true,失败返回false

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

function func($value, $key)
{
    // 自定义处理过程
    echo $value . "\r\n";
}

array_walk_recursive($array, 'func');

以上范例输出

swk
22
1
  1. 特别说明

对数组中的每个元素递归的执行回调函数