不要问为什么但我想在文件中合并一个数组,但问题是第二个数组位于另一个文件中。我试着通过下面的例子更好地解释。
file1.php:
p(0.4,0.8)
file2.php
$array = [
1,
2,
3
] + (array)include 'file2.php';
答案 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函数合并,据我所知,这将永远不会发生。