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

时间:2017-12-27 23:31:35

标签: php arrays

我有以下PHP数组:

$mod = array( 1 => array(), 2 => array(), 3 => array());

当我json_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);

当我json_encode $tstarray时,会产生如下结果:

[{"1":[]},{"2":[]},{"3":[]}]

我希望第二个结果看起来像第一个结果。通过"看"我的意思是同一类型。你知道我需要改变什么才能让它变得相同吗?

更新:我需要哪种最终结果?

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

1 个答案:

答案 0 :(得分:3)

$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"}}

一旦开始在数组中定义零索引值,就会出现问题......此时它们将开始将json编码为真数组。

请求更新

$arr = array();

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

print_r(json_encode($arr));

输出:

{"1":[],"2":[],"3":[],"4":[],"5":[],"6":[],"7":[],"8":[],"9":[]}