非常简化的示例:
function returnArray() {
return array('First','Second','Third');
}
$arr = array('hello','world');
$arr[] = returnArray();
print_r($arr);
我(错误地)期望看到$arr
包含5个元素,但实际上包含了这个元素(而且我理解这很有意义):
Array
(
[0] => hello
[1] => world
[2] => Array
(
[0] => First
[1] => Second
[2] => Third
)
)
我很容易地使用临时数组“固定”了它,扫描了它的元素,然后将元素一个接一个地添加到$arr
数组中。
但是我猜/希望有一种方法可以告诉PHP自动添加元素,而不是在第一个元素中创建“子”数组,对吗?谢谢!
答案 0 :(得分:3)
您可以使用array_merge
,
class MailService
{
public function __construct()
{
}
}
将导致
$arr = array_merge($arr, returnArray());
这将在这里顺利进行,因为您的数组都具有数字键。如果键是字符串,则必须格外小心(分别确定是否是您想要的结果),因为
如果输入数组具有相同的字符串键,则该键的后一个值将覆盖前一个。但是,如果数组包含数字键,则后面的值将不会覆盖原始值,而是将其附加。
答案 1 :(得分:0)
您要将结果数组附加到先前创建的数组。而不是使用数组合并。
function returnArray() {
return array('First','Second','Third');
}
$arr = array('hello','world');
$arr = array_merge($arr, returnArray());
print_r($arr);