合并来自不同文件的2个数组

时间:2016-12-14 14:01:46

标签: php arrays

不要问为什么但我想在文件中合并一个数组,但问题是第二个数组位于另一个文件中。我试着通过下面的例子更好地解释。

file1.php:

p(0.4,0.8)

file2.php

$array = [
    1,
    2,
    3
] + (array)include 'file2.php';

4 个答案:

答案 0 :(得分:2)

file2.php中,将其分配给变量而不是返回它。在该文件中包含该文件后,该变量将显示在您的第一个文件中。

然后,使用array_merge()将它们合并在一起。只要你没有任何冲突的密钥(你甚至不在这里分配密钥,所以不应该成为问题),就不会有任何问题。 array_merge()的手册详细介绍了这一点。

file1.php

include "file2.php";
$array = [1, 2, 3];
$array = array_merge($array, $file2_array);

file2.php

$file2_array = [4, 5, 6];

file1.php中$array的输出将为

Array (
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
)

参考

答案 1 :(得分:1)

您的案例中的问题不在于include - 问题是+,它会按键复制数组,并删除重复的键。

您有两种方法可以解决此问题。

使用数组合并

$array = array_merge([1,2,3], include 'file2.php');

使用具有唯一键的数组

$array = ['key1' => 'data'] + include 'file2.php';

file2.php

return ['key2' => 'other data'];

答案 2 :(得分:1)

试试这个:

档案1

return [
   'key1' => 'value2' 
];

主档

$array1 = require "file1.php";
$array2 =  [
   'key2' => 'value2' 
];

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

答案 3 :(得分:0)

抓我描述的一切我认为我发现了问题,我正在使用Laravel并尝试将一个类中的数组与include函数合并,据我所知,这将永远不会发生。