资讯专栏INFORMATION COLUMN

PHP 数组函数分类和整理

LiuZh / 488人阅读

摘要:获取元素数量获取数组元素总数获取所有的键获取数组所有键组成的数组。遍历数组元素获取数组当前元素。数组指针前移一步。数组指针指向最后一个元素。其他数组操作反转数组。随机取出数组元素。对数组的所有值求和。

这几天工作之余整理和分类了PHP 中常用的数组相关的函数。如有错误和遗漏,请留言指正!

数组函数整理 创建数组函数

array array ([ mixed $... ] ):创建数组的语言结构

array range ( mixed $start , mixed $end [, number $step = 1 ] ):根据范围创建数组

array array_combine ( array $keys , array $values ):使用一个数组作为键,另一个数组作为值创建新的数组。

获取元素数量

int count ( mixed $array_or_countable [, int $mode = COUNT_NORMAL ] ):获取数组元素总数

获取所有的键

array array_keys ( array $array [, mixed $search_value = null [, bool $strict = false ]] ):获取数组所有键组成的数组。

获取所有的值

array 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 array_merge ( array $array1 [, array $... ] ):合并一个或多个数组。

array array_merge_recursive ( array $array1 [, array $... ] ):递归地合并一个或多个数组。

替换数组元素

array array_replace ( array $array1 , array $array2 [, array $... ] ):替换一个数组的元素。

填充已有数组

array array_fill_keys ( array $keys , mixed $value ):使用指定的键和值填充。

array array_fill ( int $start_index , int $num , mixed $value ):使用指定的值填充。

array array_pad ( array $array , int $size , mixed $value ):以指定大小填充数组。

其他数组操作

array array_reverse ( array $array [, bool $preserve_keys = false ] ):反转数组。

array array_chunk ( array $array , int $size [, bool $preserve_keys = false ] ):分割数组。

array array_column ( array $input , mixed $column_key [, mixed $index_key = null ] ):获取数组的一个列。

mixed array_rand ( array $array [, int $num = 1 ] ):随机取出数组元素。

array array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] ):取出数组的一部分元素。

array array_splice ( array &$input , int $offset [, int $length = count($input) [, mixed $replacement = array() ]] ):取代数组的一部分元素。

array array_count_values ( array $array ):统计数组中的所有的值。

number array_product ( array $array ):计算数组中所有值的乘积。

number array_sum ( array $array ):对数组的所有值求和。

array array_unique ( array $array [, int $sort_flags = SORT_STRING ] ):移除数组中重复的值。

array list ( mixed $var1 [, mixed $... ] ):数组转换为一组变量。

array array_change_key_case ( array $array [, int $case = CASE_LOWER ] ):数组键名大小写转化。

array array_flip ( array $array ):交换数组的键和值。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28785.html

相关文章

  • PHP 实现无限分类

    摘要:下面就记录下我在写时实现无限分类的过程。方法是一个递归函数。这边我自定义了一个递归函数用于获取该分类下的子分类。具体实现如下获取子节点记录该分类的深度启用禁用如果该分类的依旧有子分类则再次遍历输出重置分类层级最终效果 最近打算做一个blog,通常每篇文章都有属于自己的分类。下面就记录下我在写blog时实现无限分类的过程。php框架用的是laravel,根据注释也能轻松改成你习惯的框架。...

    ysl_unh 评论0 收藏0
  • PHP框架之ThinkPHP模块开发系列八,无限级分类的删除

    摘要:我们在新建一个删除前的钩子函数,再利用递归方法实现子栏目的删除。最后我们删除把钩子函数恢复到原始状态在浏览器中输入,然后点击美国一栏中的删除,此时会同时删除美国下的纽约。至此,无限级分类的删除功能操作完毕。 在此现更正一下之前的预告,之前忘记了先应该把无限级分类栏目列表功能做完,也就是删除功能还没做,所以今天我们先做删除,下一节再做面包屑导航。非常抱歉。 同时,不知道是什么原因,上一节...

    BWrong 评论0 收藏0
  • 整理PHP的学习方向资料

    摘要:如果你现在处于以下几种状态,本资料非常适合你准备换工作,不知道从哪开始准备技术遇到瓶颈,不知道该学什么准备学,但不知道领域有多深一基础篇了解大部分数组处理函数字符串处理函数区别系列函数引用,结合案例分析与区别与区别全部魔术函数理解区别区别二 如果你现在处于以下几种状态,本资料非常适合你: 准备换工作,不知道从哪开始准备 技术遇到瓶颈,不知道该学什么 准备学 PHP,但不知道领域有多深...

    voidking 评论0 收藏0
  • 前端面试知识点目录整理

    摘要:写在前面金三银四又到了一年一度的跳槽季相信大家都在准备自己面试笔记我也针对自己工作中所掌握或了解的一些东西做了一个目录总结方便自己复习详细内容会在之后一一对应地补充上去有些在我的个人主页笔记中也有相关记录这里暂且放一个我的面试知识点目录大家 写在前面: 金三银四, 又到了一年一度的跳槽季, 相信大家都在准备自己面试笔记, 我也针对自己工作中所掌握或了解的一些东西做了一个目录总结,方便自...

    xzavier 评论0 收藏0
  • 前端面试知识点目录整理

    摘要:写在前面金三银四又到了一年一度的跳槽季相信大家都在准备自己面试笔记我也针对自己工作中所掌握或了解的一些东西做了一个目录总结方便自己复习详细内容会在之后一一对应地补充上去有些在我的个人主页笔记中也有相关记录这里暂且放一个我的面试知识点目录大家 写在前面: 金三银四, 又到了一年一度的跳槽季, 相信大家都在准备自己面试笔记, 我也针对自己工作中所掌握或了解的一些东西做了一个目录总结,方便自...

    enda 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<