在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1.array_merge()合并 例子 $array = array('a'=>'bb'); $array2 = array('b'=>'cc'); $array3 = array_merge($array,$array2); 输出结果为 Array ( [a] => bb [b] => cc ) 上面因为都是数组就没有问题了,假如我们把$array 设置不是数组看看什么情况 $array = 1;//array('a'=>'bb'); $array2 = array('b'=>'cc'); $array3 = array_merge($array,$array2); print_r( $array3 ); 运行后结果 Warning: array_merge() [function.array-merge]: Argument #1 is not an array in E:test1.php on (www.ogeek.net)line 4 告诉我们必须是要一个数组了,那么这个我就有多种方法来解决, 1.使用is_array() 进行判断了,但是会发现如果合并数组比较多一个个判断不合理,后来发现可以转换数据类型 $array = 1;//array('a'=>'bb'); $array2 = array('b'=>'cc'); $array3 = array_merge((array)$array,(array)$array2); print_r( $array3 ); 输出结果不报错了 Array ( [0] => 1 [b] => cc ) 他自动把数字1转换成了数组了,所以大家在使用时一定要注意这些细节哦。 转自:http://www.ogeek.net/article/51276.htm 还有一篇事介绍覆盖的问题的:http://www.ogeek.net/article/63037.htm 使用php语言的array_merge函数时,以为相同的键名会覆盖,但是请看如下代码: 代码如下: $a1 = array(1=>'abc', 3=>10); 会输出什么?我们预想中的是: 代码如下: Array 实际上输出的是: 代码如下: Array 不但没有被覆盖,而且数字键被重新连续索引了。 起初以为这个是bug,后来翻了php手册 http://php.net/manual/zh/function.array-merge.php 「如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。 如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。」 欢迎微信关注:phpstory |
2022-08-16
2022-11-06
2022-08-18
2022-08-15
2022-08-18
请发表评论