PHP-将函数返回的数组一个一个地存储在一个已经存在的数组中

时间:2019-01-29 09:50:27

标签: php arrays

非常简化的示例:

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自动添加元素,而不是在第一个元素中创建“子”数组,对吗?谢谢!

2 个答案:

答案 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);