合并数组而不生成密钥

时间:2011-03-12 10:01:04

标签: php arrays

如何将2个数组合并到$array3

$array1 = array('first', 'second');
$array2 = array('third', 'fourth');

$array3 = array('first', 'second', 'third', 'fourth');

我找到的所有函数都添加了键,将其转换为关联数组[0] =>'first'。我不想要这个。我希望它保持为只有字符串的数组。

3 个答案:

答案 0 :(得分:3)

Array do 总是有一个索引/键,但在使用array() language constructor时可以省略它们:

  

如果没有为某个值指定一个键,则取整数索引的最大值,新键将是该值加1.

因此array('first', 'second', 'third', 'fourth')array(0 => 'first', 1 => 'second', 2 => 'third', 3 => 'fourth')相同:

$a = array('first', 'second', 'third', 'fourth');
$b = array(0 => 'first', 1 => 'second', 2 => 'third', 3 => 'fourth');
var_dump($a === $b);  // bool(true)
var_dump(var_export($a, true) === var_export($b, true));  // bool(true)

所以只需使用array_merge

$array3 = array_merge($array1, $array2);

答案 1 :(得分:2)

$array3 = array_merge($array1, $array2);

Doc:http://php.net/array_merge

[0],[1]等键是数组的默认键 - 每个数组都有它们。

答案 2 :(得分:1)

您的元素始终具有键。试试这个:

print_r( $array1 );

你会看到[0] => “第一”

用于合并的函数不是问题 - 键简单总是存在。 Probaly你正在寻找解决方案的方法 - 不要搜索如何摆脱索引,但尝试重写你的解决方案,其中索引没有任何意义。

相关问题