这几天工作之余整理和分类了PHP 中常用的数组相关的函数。如有错误和遗漏,请留言指正! 创建数组函数 array ([ mixed $... ] ):创建数组的语言结构 range ( mixed $start , mixed $end [, number $step = 1 ] ):根据范围创建数组 array_combine ( array $keys , array $values ):使用一个数组作为键,另一个数组作为值创建新的数组。 获取元素数量 int count ( mixed $array_or_countable [, int $mode = COUNT_NORMAL ] ):获取数组元素总数 获取所有的键 array_keys ( array $array [, mixed $search_value = null [, bool $strict = false ]] ):获取数组所有键组成的数组。 获取所有的值 array_values ( array $array ):获取数组所有值组成的数组。 遍历数组元素 mixed current ( array &$array ):获取数组当前元素。 mixed key ( array $array ):获取数组当前元素的键。 mixed next ( array &$array ):数组指针前移一步。 mixed prev ( array &$array ):数组指针倒回一步。 mixed reset ( array &$array ):数组指针指向第一个元素。 mixed end ( array &$array ):数组指针指向最后一个元素。 array each ( array &$array ):返回键值对,并数组指针前移一步。 数组位移操作 mixed array_shift ( array &$array ):从数组移除一个元素,并返回。 int array_unshift ( array &$array , mixed $value1 [, mixed $... ] ):数组头部插入一个或多个元素。 数组的栈操作 mixed array_pop ( array &$array ):数组尾部最后一个元素移除并返回(出栈)。 int array_push ( array &$array , mixed $value1 [, mixed $... ] ):数组尾部压入一个或多个元素(入栈) 数组元素排序 函数名称 | 排序依据 | 是否保持键 | 排序顺序 | 是否使用回调函数 | array_multisort() | 值 | 数字类型键不保持,字符串类型键保持 | 第一个数组或由选项指定 | 否 | asort() | 值 | 是 | 由低到高 | 否 | arsort() | 值 | 是 | 由高到低 | 否 | ksort() | 键 | 是 | 由低到高 | 否 | krsort() | 键 | 是 | 由高到低 | 否 | natsort() | 值 | 是 | 自然排序 | 否 | natcasesort() | 值 | 是 | 自然排序,大小写不敏感 | 否 | sort() | 值 | 否 | 由低到高 | 否 | rsort() | 值 | 否 | 由高到低 | 否 | shuffle() | 值 | 否 | 随机 | 否 | usort() | 值 | 否 | 用户定义 | 是 | uasort() | 值 | 是 | 用户定义 | 是 | uksort() | 键 | 是 | 用户定义 | 是 |
查找数组元素 mixed array_search ( mixed $needle , array $haystack [, bool $strict = false ] ):查找值对应的第一个键名。 bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] ):判断值是否存在 bool array_key_exists ( mixed $key , array $array ):判断键是否存在 使用回调函数 array array_map ( callable $callback , array $array1 [, array $... ] ) bool array_walk ( array &$array , callable $callback [, mixed $userdata = NULL ] ) bool array_walk_recursive ( array &$array , callable $callback [, mixed $userdata = NULL ] ) 数组的差集 函数名称 | 是否比较键名 | 是否比较值 | 键是否使用回调函数 | 值是否使用回调函数 | array_diff_key() | 是 | 否 | 否 | 否 | array_diff() | 否 | 是 | 否 | 否 | array_diff_assoc() | 是 | 是 | 否 | 否 | array_diff_ukey() | 是 | 否 | 是 | 否 | array_udiff () | 否 | 是 | 否 | 是 | array_diff_uassoc() | 是 | 是 | 是 | 否 | array_udiff_assoc() | 是 | 是 | 否 | 是 | array_udiff_uassoc() | 是 | 是 | 是 | 是 |
数组的交集 函数名称 | 是否比较键名 | 是否比较值 | 键是否使用回调函数 | 值是否使用回调函数 | array_intersect_key() | 是 | 否 | 否 | 否 | array_intersect() | 否 | 是 | 否 | 否 | array_intersect_assoc() | 是 | 是 | 否 | 否 | array_intersect_ukey() | 是 | 否 | 是 | 否 | array_uintersect () | 否 | 是 | 否 | 是 | array_intersect_uassoc() | 是 | 是 | 是 | 否 | array_uintersect_assoc() | 是 | 是 | 否 | 是 | array_uintersect_uassoc() | 是 | 是 | 是 | 是 |
数组的合并 array_merge ( array $array1 [, array $... ] ):合并一个或多个数组。 array_merge_recursive ( array $array1 [, array $... ] ):递归地合并一个或多个数组。 替换数组元素 array_replace ( array $array1 , array $array2 [, array $... ] ):替换一个数组的元素。 填充已有数组 array_fill_keys ( array $keys , mixed $value ):使用指定的键和值填充。 array_fill ( int $start_index , int $num , mixed $value ):使用指定的值填充。 array_pad ( array $array , int $size , mixed $value ):以指定大小填充数组。 其他数组操作 array_reverse ( array $array [, bool $preserve_keys = false ] ):反转数组。 array_chunk ( array $array , int $size [, bool $preserve_keys = false ] ):分割数组。 array_column ( array $input , mixed $column_key [, mixed $index_key = null ] ):获取数组的一个列。 mixed array_rand ( array $array [, int $num = 1 ] ):随机取出数组元素。 array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] ):取出数组的一部分元素。 array_splice ( array &$input , int $offset [, int $length = count($input) [, mixed $replacement = array() ]] ):取代数组的一部分元素。 array_count_values ( array $array ):统计数组中的所有的值。 number array_product ( array $array ):计算数组中所有值的乘积。 number array_sum ( array $array ):对数组的所有值求和。 array_unique ( array $array [, int $sort_flags = SORT_STRING ] ):移除数组中重复的值。 list ( mixed $var1 [, mixed $... ] ):数组转换为一组变量。 array_change_key_case ( array $array [, int $case = CASE_LOWER ] ):数组键名大小写转化。 array_flip ( array $array ):交换数组的键和值。
|