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后台工程师面试经常需要回答的问题,希望我的讲解对大家有帮助。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 关于我妈的一切_networkmanager是什么服务

    关于我妈的一切_networkmanager是什么服务NetworkManager(NetworManager)是检测网络、自动连接网络的程序。无论是无线还是有线连接,它都可以令您轻松管理。对于无线网络,网络管理器可以自动切换到最可靠的无线网络。利用网络管理器的程序可以自由切换在线和离线模式。网络管理器可以优先选择有线网络,支持VPN。网络管理器最初由Redhat公司开发,现在由GNOME管理。1.查看NetworkManager…

  • 新网站500内部服务器错误,解决网站http服务器内部500错误[通俗易懂]

    新网站500内部服务器错误,解决网站http服务器内部500错误[通俗易懂]针对此问题关键解决办法:WEB站点右键属性——》目录(配置)–》选项–》启用父路径WEB站点目录要有iusr用户,并且iusr用户(如果是新建的用户也要给权限)要用读取、写入权限(如果里面不需要运行asp、php脚本就不需要给写入)2、一般情况如果客户端ie开启了查看程序错误,可以看到详细的错误,可以根据错误提示到百度搜索即可。3、针对iis访问量过大的原因,例如asp无法访问了,但php却可以…

  • 字符串和时间转换sql「建议收藏」

    字符串和时间转换sql「建议收藏」oracle:当前时间:sysdate–dual(Oracle中的一张内部表,只有一行一列,一般用作特定查询)时间转字符串:to_char(date,format)selectto_char(sysdate,‘yyyy”年”mm”月”dd”日”’)时间转字符串fromdual;2019年04月18日字符串转时间:to_date(str,format)…

  • 解决H5页面在微信浏览器中打开 input file 在安卓上没有拍照选项

    解决H5页面在微信浏览器中打开 input file 在安卓上没有拍照选项有时候我们会在微信公众号里开发会遇到上传图片的功能,当你写<inputtype="file">的时候,在IOS上可以成功调起拍照和图库两块,在安卓手机上只能调取图库而没有拍照功能,解决办法:给input加上accept属性<inputtype="file"accept="image/*"/> //调用相机,图片或者相册(两者都行)加上了capture=…

  • 持久层(数据层,Dao层) MyBatis框架「建议收藏」

    持久层(数据层,Dao层) MyBatis框架「建议收藏」所谓的持久层就是把数据可以永久保持的存储到设备中,不像放到内存中那样断电就消失,一般来说,持久层为直接的理解就是对数据库的各种操作,如CRUD(增加,删除,修改,查询),更新等操作持久层,就是把持久

发表回复

您的电子邮箱地址不会被公开。

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