广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP数组合并方法有哪些
  • 301
分享到

PHP数组合并方法有哪些

2023-06-20 14:06:07 301人浏览 泡泡鱼
摘要

这篇文章主要介绍PHP数组合并方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!给大家分享三种php数组合并方法:array_merge、array_push和元素追加法,并比较一下它们的性能和内存消耗。在 P

这篇文章主要介绍PHP数组合并方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

给大家分享三种php数组合并方法:array_merge、array_push和元素追加法,并比较一下它们的性能和内存消耗。

在 PHP 中实现数组的合并,常用的方法有两种:

  • 直接使用 array_merge ,这种方法虽然做到了代码的简洁,但却大大增加了内存的开销,同时拖慢了 PHP 的性能。

  • 对数组进行遍历,将数组中的值逐个追加到结果数组中,相较直接使用 array_merge ,这种方法虽然增加了代码量,却降低了 PHP 的内存开销,同时提升了性能。

⒈ 代码实现

// 数组的长度$len = $argv[1];$start = 0;$arr = [];// 数组初始化while ($start < $len) {    $arr[$start] = range(1, $len);    $start ++;}// 采用 array_merge 的方式合并数组function merge1 (array $input){    $results = [];    foreach ($input as $item) {        $results = array_merge($results, $item);    }    return $results;}// 采用 array_push 的方式合并数组function merge2 (array $input) {    $results = [];    foreach ($input as $item) {        foreach ($item as $v) {            array_push($results, $v);        }    }    return $results;}// 采用元素追加的方式合并数组function merge3(array $input){    $results = [];    foreach ($input as $item) {        foreach ($item as $v) {            $results [] = $v;        }    }    return $results;}echo microtime(), PHP_EOL;$res = merge3($arr);echo microtime(), PHP_EOL;echo memory_get_usage(), PHP_EOL;echo memory_get_peak_usage(), PHP_EOL;

⒉ 运行结果比较

数组长度array_mergearray_push元素追加
内存消耗(B)运行时间(㎲)内存消耗(B)运行时间(㎲)内存消耗(B)运行时间(㎲)
5432,44020433,20025433,20019
50764,704322629,736141629,736102
50027,434,944897,42219,042,41611,29419,042,4168,182
5,0003,479,599,136904,476,1292,405,853,3921,266,2032,405,853,3921,022,328

⒊ 原因分析

  • 使用 array_merge ,每调用一次,都需要为 array_merge 的结果数组分配新的内存空间(PHP 采用的是写时复制的机制,而 array_merge 不会对参数进行写操作,所以每次调用时并不需要为入参重新分配内存)。随着数组长度的增加,调用 array_merge 的次数也会增加,重新分配内存的次数也会增加,同时结果数组的长度不断增加,每次所需要分配的内存空间也会随着增加,这就需要消耗大量的内存。同时,频繁的分配/销毁内存,导致 PHP 的性能下降。

  • 使用 array_push ,只需要对结果数组分配一次内存,之后会一直往结果数组中追加元素。PHP 数组的底层实现方式为 hashtable,并且在初始化时会为 hashtable 分配 8 个长度的 bucket,每个 bucket 存储一个数组元素。当现有的 bucket 用完之后,如果还要继续往数组中追加元素,那么 PHP 会将现有的 bucket 数量翻倍,所以,使用 array_push 往结果数组中追加元素时,并不是每次操作都需要分配新的 bucket,这样就减少了分配内存的次数,同时加快了程序运行时间,提升了 PHP 性能。

  • 使用元素追加的方式,原理与 array_push 类似,唯一的区别在于使用 array_push 会有函数调用,而元素追加的方式不需要函数调用,这样程序运行会更轻量。

以上是“PHP数组合并方法有哪些”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网PHP编程频道!

--结束END--

本文标题: PHP数组合并方法有哪些

本文链接: https://www.lsjlt.com/news/297484.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PHP数组合并方法有哪些
    这篇文章主要介绍PHP数组合并方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!给大家分享三种PHP数组合并方法:array_merge、array_push和元素追加法,并比较一下它们的性能和内存消耗。在 P...
    99+
    2023-06-20
  • php合并数组的方法有哪些
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑1、使用加号“+”运算符:直接将两个数组的值合并成为一个数组;<php $a = [1,2,3,'a'=>'a']; $b ...
    99+
    2017-11-05
    php 合并数组
  • PHP合并数组的常见方法有哪些
    本篇内容主要讲解“PHP合并数组的常见方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP合并数组的常见方法有哪些”吧!array_merge()函数-覆盖前面相同键名的数组元素在PH...
    99+
    2023-06-25
  • javascript数组合并的方法有哪些
    这篇文章主要介绍“javascript数组合并的方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“javascript数组合并的方法有哪些”文章能帮助大家解决问题。一、concat(...
    99+
    2023-07-06
  • python数组合并的方法有哪些
    Python中有多种方法可以合并数组,以下是其中一些常见的方法:1. 使用 "+" 运算符:可以使用 "...
    99+
    2023-08-23
    python
  • JavaScript数组合并的常见方法有哪些
    这篇文章主要介绍了JavaScript数组合并的常见方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript数组合并的常见方法有哪些文章都会有所收获,下面我们一起来看看吧。1.ES6 解构[...
    99+
    2023-07-04
  • Python中Pandas数据合并方法有哪些
    这篇文章主要介绍“Python中Pandas数据合并方法有哪些”,在日常操作中,相信很多人在Python中Pandas数据合并方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中Pandas...
    99+
    2023-06-21
  • python数据表合并的方法有哪些
    这篇“python数据表合并的方法有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“py...
    99+
    2022-10-19
  • PHP数组排序有哪些方法
    这篇文章主要介绍PHP数组排序有哪些方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!PHP数组中的元素可以按字母或数字顺序进行降序或升序排列。PHP数组排序函数方法有:sort()、rsort() 、asort()...
    99+
    2023-06-15
  • python DataFrame的合并方法有哪些
    这篇文章主要介绍“python DataFrame的合并方法有哪些”,在日常操作中,相信很多人在python DataFrame的合并方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答...
    99+
    2023-07-02
  • php中合并数组的常见方法
    你好, 我是程序猿零壹。 相信各位phper在日常开发中,会经常遇到需要合并数组的场景。那么,在php中都有哪一些方法可以用来合并数组呢。 第一种,使用“+”运算符 使用加号“+”运算符,可以直接将两个数组合并成一个数组。 示例代码: ...
    99+
    2023-09-04
    php 开发语言
  • php数组合并不覆盖的方法
    这篇文章给大家分享的是有关php数组合并不覆盖的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php数组合并不覆盖的方法:首先创建一个PHP示例文件;然后通过“array_merge($arr1, $arr2...
    99+
    2023-06-15
  • 浅析php合并数组的多种方法
    在PHP中,合并数组是一个常见的操作。合并数组是将两个或多个数组组合成一个新的数组的过程。PHP提供了多种合并数组的方法,本文将详细介绍这些方法的用法和示例。array_merge()函数array_merge()函数是PHP内置的一个函数...
    99+
    2023-05-14
  • php中数组有哪些操作方法
    这篇文章给大家分享的是有关php中数组有哪些操作方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php数组操作方法有:array_chunk()、array_pop()、array_push()、array_r...
    99+
    2023-06-14
  • 创建php数组的方法有哪些
    这篇文章主要讲解了“创建php数组的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“创建php数组的方法有哪些”吧!创建数组的方法:1、利用“$数组名[下标]=值;”语句,以直接赋值...
    99+
    2023-06-30
  • php数组初始化方法有哪些
    今天小编给大家分享一下php数组初始化方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。3种方法:1、利用“[]”单独...
    99+
    2023-06-30
  • php数组去重的方法有哪些
    PHP数组去重的方法有以下几种:1. 使用array_unique函数:该函数可以去除数组中重复的值,并返回一个新的数组。```ph...
    99+
    2023-08-15
    php
  • git代码合并的方法有哪些
    本文小编为大家详细介绍“git代码合并的方法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“git代码合并的方法有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。git Merge这种合并是将两个分支的历...
    99+
    2023-06-27
  • python中变量合并方法有哪些
    这篇文章主要为大家展示了“python中变量合并方法有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python中变量合并方法有哪些”这篇文章吧。一、list 合并第一种方法:a ...
    99+
    2023-06-29
  • 合并Python列表的方法有哪些
    本篇内容介绍了“合并Python列表的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!我喜欢12这个数字,因为有太多的事情与12有关...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作