首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将一个数组追加到另一个数组(不是array_push或+)

将一个数组追加到另一个数组(不是array_push或+)
EN

Stack Overflow用户
提问于 2010-11-25 00:09:57
回答 8查看 488.3K关注 0票数 325

如何在不比较数组键的情况下将一个数组追加到另一个数组?

代码语言:javascript
复制
$a = array( 'a', 'b' );
$b = array( 'c', 'd' );

最后应该是:Array( [0]=>a [1]=>b [2]=>c [3]=>d )如果我使用像[]array_push这样的东西,它将导致以下结果之一:

代码语言:javascript
复制
Array( [0]=>a [1]=>b [2]=>Array( [0]=>c [1]=>d ) )
//or
Array( [0]=>c [1]=>d )

它应该是某种东西,这样做,但以一种更优雅的方式:

代码语言:javascript
复制
foreach ( $b AS $var )
    $a[] = $var;
EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2010-11-25 00:16:04

array_merge是一种优雅的方式:

代码语言:javascript
复制
$a = array('a', 'b');
$b = array('c', 'd');
$merge = array_merge($a, $b); 
// $merge is now equals to array('a','b','c','d');

做一些类似的事情:

代码语言:javascript
复制
$merge = $a + $b;
// $merge now equals array('a','b')

将不起作用,因为+运算符实际上并不合并它们。如果它们的$a$b具有相同的密钥,它将不会执行任何操作。

票数 493
EN

Stack Overflow用户

发布于 2010-11-25 00:15:59

为什么不使用

代码语言:javascript
复制
$appended = array_merge($a,$b); 

你为什么不使用这个,正确的,内置的方法。

票数 36
EN

Stack Overflow用户

发布于 2016-07-08 17:51:27

对于大型数组,最好不使用array_merge进行连接,以避免内存复制。

代码语言:javascript
复制
$array1 = array_fill(0,50000,'aa');
$array2 = array_fill(0,100,'bb');

// Test 1 (array_merge)
$start = microtime(true);
$r1 = array_merge($array1, $array2);
echo sprintf("Test 1: %.06f\n", microtime(true) - $start);

// Test2 (avoid copy)
$start = microtime(true);
foreach ($array2 as $v) {
    $array1[] = $v;
}
echo sprintf("Test 2: %.06f\n", microtime(true) - $start);


// Test 1: 0.004963
// Test 2: 0.000038
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4268871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档