PHP 语法总结 - 数组篇

本文详细介绍了PHP中23种常见的数组操作函数,包括差集、交集、填充、合并、弹出、打乱等,帮助读者掌握高效处理数组的方法。
1. 计算数组的差集

array array_diff(array $array1, array $array2 [, array $... ])

  • 说明:该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。
  • 返回值:返回一个数组,注意键名保留不变。

    2. 带索引检查使用值比较计算数组的差集
    array array_diff_assoc(array $array1, array $array2 [, array $... ])
  • 说明:该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意和 array_diff() 不同的是键名也用于比较。
  • 返回值:返回一个数组,注意键名保留不变。

    3. 使用键名比较计算数组的差集
    array array_diff_key(array $array1, array $array2 [, array $... ])
  • 说明:根据 array1 中的键名和 array2 进行比较,返回不同键名的项。 本函数和 array_diff() 相同只除了比较是根据键名而不是值来进行的。 键名根据严格类型检查(===)。
  • 返回值:返回一个数组,注意键名保留不变。

    4. 计算数组的交集
    array array_intersect(array $array1, array $array2 [, array $... ])
  • 说明:该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。
  • 返回值:返回一个数组,注意键名保留不变。

    5. 带索引检查计算数组的交集
    array array_intersect_assoc(array $array1, array $array2 [, array $... ])
  • 说明:该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意和 array_intersect() 不同的是键名也用于比较。
  • 返回值:返回一个数组,注意键名保留不变。

    6. 使用键名比较计算数组的交集
    array array_intersect_key(array $array1, array $array2 [, array $... ])
  • 说明:根据 array1 中的键名和 array2 进行比较,返回相同键名的项。 本函数和 array_diff() 相同只除了比较是根据键名而不是值来进行的。 键名根据严格类型检查(===)。
  • 返回值:返回一个数组,注意键名保留不变。

    7. 用给定的值填充数组
    array array_fill(int $start_index, int $num, mixed $value)
  • 说明:用 value 参数的值将一个数组填充 num 个条目,键名由 start_index 参数指定的开始。
  • 返回值:返回填充后的数组。

    8. 使用指定的键和值填充数组
    array array_fill_keys(array $keys, mixed $value)
  • 说明:使用 value 参数的值作为值,使用 keys 数组的值作为键来填充一个数组。
  • 返回值:返回填充后的数组。

    9. 检查数组里是否有指定的键名或索引
    bool array_key_exists(mixed $key, array $array)
  • 说明:数组里有键 key 时,array_key_exists() 返回 TRUE。 key 可以是任何能作为数组索引的值。 array_key_exists() 仅仅搜索第一维的键。 多维数组里嵌套的键不会被搜索到。
  • 返回值:成功时返回 TRUE, 或者在失败时返回 FALSE。

    10. 返回数组中部分的或所有的键名
    array array_keys(array $array [, mixed $search_value = null [, bool $strict = false ]])
  • 说明:返回给定数组中的键名或索引。如果指定了可选参数 search_value,则只返回该值的键名。否则给定数组中的所有键名都会被返回。
  • 返回值:返回一个数组。

    11. 合并一个或多个数组
    array array_merge(array $array1 [, array $... ])
  • 说明:将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。 如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
  • 返回值:返回结果数组。

    12. 弹出数组最后一个单元(出栈)
    mixed array_pop(array &$array)
  • 说明:弹出并返回 array 数组的最后一个单元,并将数组 array 的长度减一。
  • 返回值:返回 array 的最后一个值。如果 array 是空(如果不是一个数组),将会返回 NULL 。

    13. 将一个或多个单元压入数组的末尾(入栈)
    int array_push(array &$array, mixed $value1 [, mixed $... ])
  • 说明:将 array 当成一个栈,并将传入的变量压入 array 的末尾。array 的长度将根据入栈变量的数目增加。如果用 array_push() 来给数组增加一个单元,还不如用 $array[] = ,因为这样没有调用函数的额外负担。
  • 返回值:返回处理之后数组的元素个数。

    14. 打乱数组
    bool shuffle(array &$array)
  • 说明:打乱(随机排列单元的顺序)一个数组。 它使用的是伪随机数产生器。
  • 返回值:成功时返回 TRUE, 或者在失败时返回 FALSE。

    15. 使用传递的数组替换第一个数组的元素
    array array_replace(array $array1, array $array2 [, array $... ])
  • 说明:使用后面数组元素相同 key 的值替换 array1 数组的值。如果一个键存在于第一个数组同时也存在于第二个数组,它的值将被第二个数组中的值替换。如果一个键存在于第二个数组,但是不存在于第一个数组,则会在第一个数组中创建这个元素。如果一个键仅存在于第一个数组,它将保持不变。如果传递了多个替换数组,它们将被按顺序依次处理,后面的数组将覆盖之前的值。
  • 返回值:返回一个数组。

    16. 返回单元顺序相反的数组
    array array_reverse(array $array [, bool $preserve_keys = false ])
  • 说明:返回一个单元为相反顺序的新数组。如果 preserve_keys 设置为 TRUE 会保留数字的键。 非数字的键则不受这个设置的影响,总是会被保留。
  • 返回值:返回反转后的数组。

    17. 在数组中搜索给定的值(检查数组中是否存在某个值)
    mixed array_search(mixed $needle, array $haystack [, bool $strict = false ])
    bool in_array(mixed $needle, array $haystack [, bool $strict = FALSE ])
  • 说明:大海捞针,在大海(haystack)中搜索针( needle 参数)。如果 needle 是字符串,则比较以区分大小写的方式进行。 如果可选的第三个参数 strict 为 TRUE,则 array_search() 将在 haystack 中检查完全相同的元素。
  • 返回值:如果找到了 needle 则返回它的键,否则返回 FALSE。(如果存在返回TRUE,否则返回 FALSE。)

    18. 将数组开头的单元移出数组
    mixed array_shift(array &$array)
  • 说明:将 array 的第一个单元移出并作为结果返回,将 array 的长度减一并将所有其它单元向前移动一位。所有的数字键名将改为从零开始计数,字符串键名将不变。
  • 返回值:返回移出的值,如果 array 为 空或不是一个数组则返回 NULL。

    19. 从数组中取出一段
    array array_slice(array $array, int $offset [, int $length = NULL [, bool $preserve_keys = false ]])
  • 说明:返回根据 offset 和 length 参数所指定的 array 数组中的一段序列。默认会重新排序并重置数组的数字索引。
  • 返回值:返回其中一段。如果 offset 参数大于 array 尺寸,就会返回空的 array。

    20. 去掉数组中的某一部分并用其它值取代
    array array_splice(array &$input, int $offset [, int $length = count($input) [, mixed $replacement = array() ]])
  • 说明:把 input 数组中由 offset 和 length 指定的单元去掉,如果提供了 replacement 参数,则用其中的单元取代。 注意 input 中的数字键名不被保留。当传入的 replacement 是个对象或者 NULL,会导致未知的行为出现。
  • 返回值:返回一个包含有被移除单元的数组。

    21. 移除数组中重复的值
    array array_unique(array $array [, int $sort_flags = SORT_STRING ])
  • 说明:先将值作为字符串排序,然后对每个值只保留第一个遇到的键名,接着忽略所有后面的键名。注意键名保留不变。
  • 返回值:返回过滤后的数组。

    22. 在数组开头插入一个或多个单元
    int array_unshift(array &$array, mixed $value1 [, mixed $... ])
  • 说明:将传入的单元插入到 array 数组的开头。注意单元是作为整体被插入的,因此传入单元将保持同样的顺序。所有的数值键名将修改为从零开始重新计数,所有的文字键名保持不变。
  • 返回值:返回 array 数组新的单元数目。

    23. 返回数组中所有的值
    array array_values(array $array)
  • 说明:返回给定数组中所有的值并给其建立数字索引。
  • 返回值:返回含所有值的索引数组。

转载于:https://www.cnblogs.com/Ra1nb0w/p/9798928.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值