当前位置: 首页 > 编程笔记 >

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

苍元章
2023-03-14
本文向大家介绍php array_merge函数使用需要注意的一个问题,包括了php array_merge函数使用需要注意的一个问题的使用技巧和注意事项,需要的朋友参考一下

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


$a1 = array(1=>'abc', 3=>10);

$a2 = array(1=>'efg', 3=>20);

print_r(array_merge($a1, $a2));

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


Array

(

    [1] => efg

    [3] => 20

)

实际上输出的是:


Array

(

    [0] => abc

    [1] => 10

    [2] => efg

    [3] => 20

)

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

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

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

 类似资料:
  • 本文向大家介绍Go使用defer函数要注意的几个点,包括了Go使用defer函数要注意的几个点的使用技巧和注意事项,需要的朋友参考一下 概述 defer 函数大家肯定都用过,它在声明时不会立刻去执行,而是在函数 return 后去执行的。 它的主要应用场景有异常处理、记录日志、清理数据、释放资源 等等。 这篇文章不是分享 defer 的应用场景,而是分享使用 defer 需要注意的点。 咱们先从一

  • 本文向大家介绍使用箭头函数应该需要注意什么?相关面试题,主要包含被问及使用箭头函数应该需要注意什么?时的应答技巧和注意事项,需要的朋友参考一下

  • 本文向大家介绍jquery选择器需要注意的问题,包括了jquery选择器需要注意的问题的使用技巧和注意事项,需要的朋友参考一下 我们先来看段代码,很简单,如下 $("#div1 span")获得三个对象的数组 1.如果执行 $("#div1 span").html("aaa"),则数组内的所有对象都会改变.如下图 2.如果执行$("#div1 span").html(),只取值的话,则只会取数组第

  • 本文向大家介绍Javascript的setTimeout()使用闭包特性时需要注意的问题,包括了Javascript的setTimeout()使用闭包特性时需要注意的问题的使用技巧和注意事项,需要的朋友参考一下 setTimeout经常被用于延迟执行某个函数,用法为: 有时为了进行异步处理,而使用setTimeout(function…,0);比如:  在setTimeout设定的函数处理器之前,

  • 本文向大家介绍使用 kafka 集群需要注意什么?相关面试题,主要包含被问及使用 kafka 集群需要注意什么?时的应答技巧和注意事项,需要的朋友参考一下 集群的数量不是越多越好,最好不要超过 7 个,因为节点越多,消息复制需要的时间就越长,整个群组的吞吐量就越低。 集群数量最好是单数,因为超过一半故障集群就不能用了,设置为单数容错率更高。

  • Hibernate collections 被当作其所属实体而不是其包含实体的一个逻辑部分。这非常重要,它主要体现为以下几点: 当删除或增加 collection 中对象的时候,collection 所属者的版本值会递增。 如 果一个从 collection 中移除的对象是一个值类型(value type)的实例,比如 composite element,那么这个对象的持久化状态将会终止,其在数据