Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中将一个数组插入到另一个数组中?_Php_Arrays - Fatal编程技术网

如何在PHP中将一个数组插入到另一个数组中?

如何在PHP中将一个数组插入到另一个数组中?,php,arrays,Php,Arrays,我有以下PHP数组: $mod = array( 1 => array(), 2 => array(), 3 => array()); 当Ijson\u encode$mod时,它会产生以下结果: {"1":[],"2":[],"3":[]} 但我希望能够通过以下方式做到这一点: $tstarray = array(); $newaray = array(1 => array()); $newaray2 = array(2 => array()); $newar

我有以下PHP数组:

$mod = array( 1 => array(), 2 => array(), 3 => array());
当I
json\u encode
$mod
时,它会产生以下结果:

{"1":[],"2":[],"3":[]}
但我希望能够通过以下方式做到这一点:

$tstarray = array();
$newaray = array(1 => array());
$newaray2 = array(2 => array());
$newaray3 = array(3 => array());
array_push($tstarray, $newaray);
array_push($tstarray, $newaray2);
array_push($tstarray, $newaray3);
当I
json\u encode
$tstarray
时,它会产生如下结果:

[{"1":[]},{"2":[]},{"3":[]}]
我希望第二个结果看起来像第一个结果。我说的“看”是指同一类型。你知道我需要改变什么才能让这一切都一样吗

更新:我需要什么样的最终结果?

如果我有var
x=9
,那么我需要一个while循环,它将创建
$mod
变量,但从
1=>array()
9=>array()
。我该怎么做

$arr1 = array(1 => array());
$arr2 = array(2 => array());
$arr3 = array(3 => array());
$arr = $arr1 + $arr2 + $arr3;

print_r(json_encode($arr));
输出为:

{"1":[],"2":[],"3":[]}
这也适用于嵌套数组

$arr1 = array(1 => array(1 => "A", 2 => "B"));
$arr2 = array(2 => array(1, 2, 3));
$arr3 = array(3 => array(1 => "C", 2 => "D"));
$arr = $arr1 + $arr2 + $arr3;
print_r(json_encode($arr));
输出:

{"1":{"1":"A","2":"B"},"2":[1,2,3],"3":{"1":"C","2":"D"}}
{"1":[],"2":[],"3":[],"4":[],"5":[],"6":[],"7":[],"8":[],"9":[]}
一旦开始在数组中定义零索引值,问题就会出现。。。此时,他们将开始将json编码为真正的数组

请求更新

$arr = array();

for ($i = 1; $i < 10; ++$i)
    $arr = $arr + array($i => array());

print_r(json_encode($arr));
输出为:

{"1":[],"2":[],"3":[]}
这也适用于嵌套数组

$arr1 = array(1 => array(1 => "A", 2 => "B"));
$arr2 = array(2 => array(1, 2, 3));
$arr3 = array(3 => array(1 => "C", 2 => "D"));
$arr = $arr1 + $arr2 + $arr3;
print_r(json_encode($arr));
输出:

{"1":{"1":"A","2":"B"},"2":[1,2,3],"3":{"1":"C","2":"D"}}
{"1":[],"2":[],"3":[],"4":[],"5":[],"6":[],"7":[],"8":[],"9":[]}
一旦开始在数组中定义零索引值,问题就会出现。。。此时,他们将开始将json编码为真正的数组

请求更新

$arr = array();

for ($i = 1; $i < 10; ++$i)
    $arr = $arr + array($i => array());

print_r(json_encode($arr));

它是否也可以作为一个数组中的一个数组?无论如何,是的,它可以工作。。。但只要你不将数组索引为零,否则它们将被json编码为真正的数组。像我一样做一些测试,目前我获得了100%的行为匹配。我对PHP是新手,所以如果我使用echo,它会是相同的吗?绝对的:echo(json_encode($arr))打印相同的。。。但千万不要把你的假设建立在你打印的东西上。。。但是在内容上。它是否也可以作为数组中的一个数组?无论如何,是的,它可以工作。。。但只要你不将数组索引为零,否则它们将被json编码为真正的数组。像我一样做一些测试,目前我获得了100%的行为匹配。我对PHP是新手,所以如果我使用echo,它会是相同的吗?绝对的:echo(json_encode($arr))打印相同的。。。但千万不要把你的假设建立在你打印的东西上。。。但是在内容上。