php拼接循环拼接字符串数组,PHP数组拼接

php拼接循环拼接字符串数组,PHP数组拼接最近的工作中老是要遇到将两个数组进行拼接的操作。下面总结一下数组拼接的几个函数及它们的不同点。PHP中两个数组合并可以使用+或者array_merge,但之间还是有区别的,而且这些区别如果了解不清楚项目中会要命的!主要区别是两个或者多个数组中如果出现相同键名,键名分为字符串或者数字,需要注意。1)键名为数字时,array_merge()后面的值将不会覆盖原来的值,而是附加到后面,但+合并数组则会把…

大家好,又见面了,我是你们的朋友全栈君。

最近的工作中老是要遇到将两个数组进行拼接的操作。下面总结一下数组拼接的几个函数及它们的不同点。

PHP中两个数组合并可以使用+或者array_merge,但之间还是有区别的,而且这些区别如果了解不清楚项目中会要命的!

主要区别是两个或者多个数组中如果出现相同键名,键名分为字符串或者数字,需要注意。

1)键名为数字时,array_merge()后面的值将不会覆盖原来的值,而是附加到后面,但+合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖)

2)键名为字符串时,array_merge()此时会覆盖掉前面相同键名的值,但+仍然把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖)。

总结一句就是,用+拼接时,键名一样时只认先出现的(前任),用array_merge拼接时,键名一样时,分键名为数字还是字符串(看脸),数字时不覆盖,字符串时会覆盖原来的值(字符串比较丑,数字比较漂亮)。

实例:

$a

=

array

(

‘a’

,

‘b’

);

$b

=

array

(

‘c’

,

‘d’

);

$c

=

$a

+

$b

;

var_dump(

$a

);

var_dump(

array_merge

(

$a

,

$b

));

//输出:

array

0 => string

‘a’

(length=1)

1 => string

‘b’

(length=1)

array

0 => string

‘a’

(length=1)

1 => string

‘b’

(length=1)

2 => string

‘c’

(length=1)

3 => string

‘d’

(length=1)

++++++++++++++++++++++++++++++++++++++++++

$a

=

array

(

0 =>

‘a’

,

1 =>

‘b’

);

$b

=

array

(

0 =>

‘c’

,

1 =>

‘b’

);

$c

=

$a

+

$b

;

var_dump(

$c

);

var_dump(

array_merge

(

$a

,

$b

));

//输出:

array

0 => string

‘a’

(length=1)

1 => string

‘b’

(length=1)

array

0 => string

‘a’

(length=1)

1 => string

‘b’

(length=1)

2 => string

‘c’

(length=1)

3 => string

‘b’

(length=1)

++++++++++++++++++++++++++++++++++++++++++

$a

=

array

(

‘a’

,

‘b’

);

$b

=

array

(

‘0’

=>

‘c’

,

1 =>

‘b’

);

$c

=

$a

+

$b

;

var_dump(

$c

);

var_dump(

array_merge

(

$a

,

$b

));

//输出:

array

0 => string

‘a’

(length=1)

1 => string

‘b’

(length=1)

array

0 => string

‘a’

(length=1)

1 => string

‘b’

(length=1)

2 => string

‘c’

(length=1)

3 => string

‘b’

(length=1)

++++++++++++++++++++++++++++++++++++++++++

$a

=

array

(

0 =>

‘a’

,

1 =>

‘b’

);

$b

=

array

(

‘0’

=>

‘c’

,

‘1’

=>

‘b’

);

$c

=

$a

+

$b

;

var_dump(

$c

);

var_dump(

array_merge

(

$a

,

$b

));

输出:

array

0 => string

‘a’

(length=1)

1 => string

‘b’

(length=1)

array

0 => string

‘a’

(length=1)

1 => string

‘b’

(length=1)

2 => string

‘c’

(length=1)

3 => string

‘b’

(length=1)

如果需要去重操作可以用这两个函数:

//1.单数组去重复array_unique($arrTest)

//2.多数组去重复array_keys(array_flip($arr1)+array_flip($arr2))

实例:

$a = array(‘1001′,’1002’);

$b = array(‘1002′,’1003′,’1004’);

$c = array(‘1003′,’1004′,’1005’);

$d = array_keys(array_flip($a) + array_flip($b) + array_flip($c));

var_dump($d);

++++++++++++++++++++++++++++++++++++++++++

//输出:

array(5) { [0]=> int(1001) [1]=> int(1002) [2]=> int(1003) [3]=> int(1004) [4]=> int(1005) }

$c = array(‘1003′,’1004′,’1005′,’1005’);

$e = array_unique($c);

var_dump($e);

++++++++++++++++++++++++++++++++++++++++++

//输出:

array(3) { [0]=> string(4) “1003” [1]=> string(4) “1004” [2]=> string(4) “1005” }

数组拼接也是PHP后台工程师面试经常需要回答的问题,希望我的讲解对大家有帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138852.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • arm服务器测评_ARM:异军突起「建议收藏」

    arm服务器测评_ARM:异军突起「建议收藏」RISC:战火点燃RISC和CISC握手言和,这并非服务器市场竞争结束,而是新一轮战火点燃的信号。双方短暂的和平还因为现在的处理器速度与指令集构架的关系越来越小,指令集构架的影响力早已被CPU微结构,甚至更为贴近底层的设计所超越。而反观服务器市场,在中低档服务器全盘被x86所统治的情况下,高端服务器的竞争形势也很激烈。在高档服务器市场中,Compaq的Alpha、惠普的PA-RISC、MIPS公司…

    2022年8月31日
  • matlab的plot颜色_matlab plot线型和颜色

    matlab的plot颜色_matlab plot线型和颜色MATLABPlot如何自定义颜色Tip:Matlab作图时最好保存成fig格式,便于以后修改。写论文是一个漫长的过程,成文后最重要的一个问题就是如何让自己的论文排版和插图更加的好看,让枯燥的论文有一点生动的色彩。这里记录我在写论文时的困惑和一些小小的技巧。以下面这个图为例:X=linspace(0,5,51);Y1=sin(X);Y2=cos(0.5*X);Z=2*Y1+…

    2022年10月15日
  • pychram激活码[最新免费获取]

    (pychram激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~C…

    2022年4月1日
  • 新学C#线程使用总结建议收藏

    这两天在项目上需要使用多线程技术,研究了半天,碰到了一些问题,现在简要总结下。线程的使用其实很简单,和JAVA里面差不多,但是还是有很多特别的地方,在C#中的线程,如果要对非线程创建的控件进行操作的话

    2021年12月20日
  • java目录删除_java删除文件及目录[通俗易懂]

    java目录删除_java删除文件及目录[通俗易懂]java中删除目录事先要删除目录下的文件或子目录。用递归就可以实现。publicvoiddel(Stringfilepath)throwsIOException{Filef=newFile(filepath);//定义文件路径if(f.exists()&&f.isDirectory()){//判断是文件还是目录if(f.listFiles().length==…

    2022年6月5日
  • Dynamics Crm 2011 Or 2013 IFD 部署一段时间后,CA验证问题[通俗易懂]

    Dynamics Crm 2011 Or 2013 IFD 部署一段时间后,CA验证问题[通俗易懂]以下错误描述摘自博客:http://blog.csdn.net/qzw4549689/article/details/14451257IFD部署一段时间后,大概一年,突然出现从IFD登录页面登录后,再次弹出要求登录的框,多次输入用户名密码仍然无效,查看日志:><TraceRecordxmlns=”http://schemas.micros…

    2022年10月26日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号