• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php array_merge函数使用需要注意的一个问题_PHP

php 搞代码 4年前 (2022-01-25) 19次浏览 已收录 0个评论

使用php语言的array_merge函数时,以为相同的键名会覆盖,但是请看如下代码:

<br />$a1 = array(1=>'abc', 3=>10);<br />$a2 = array(1=>'efg', 3=>20);<br />print_r(array_merge($a1, $a2));<br />

会输出什么?我们预想中的是:

<br />Array<br />(<br />    [1] => efg<br />    [3] => 20<br />)<br />

实际上输出的是:

<br />Array<br />(<br />    [0] => abc<br />    [1] => 10<br /><mark style="color:transparent">本文来源gaodaimacom搞#^代%!码&网*</mark><pre>搞代gaodaima码

[2] => efg
[3] => 20
)

不但没有被覆盖,而且数字键被重新连续索引了。

起初以为这个是bug,后来翻了php手册 http://php.net/manual/zh/function.array-merge.php

「如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。」


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php array_merge函数使用需要注意的一个问题_PHP
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址