有没有办法可以将
$dialstack
插入到$menustack
之后将menustack
放入$mainstack
内部?
我想要的结果可以通过将
array_push($mainstack, $menustack);
移动到最后一行来实现,但我真的在寻找一种可以将数组插入到现有数组堆栈中的方法。
$mainstack = ['applet' => "Flow"];
$menustack = ['applet' => "Menu", 'repeat' => "2"];
$dialstack = [];
$dial1 = ['applet' => "Dial", 'number' => "165465468", 'whisper' => "Yes"];
$dial2 = ['applet' => "Dial", 'number' => "654984", 'whisper' => "No"];
$dial3 = ['applet' => "Dial", 'number' => "398965165", 'whisper' => "Yes"];
array_push($mainstack, $menustack);
array_push($dialstack, $dial1);
array_push($dialstack, $dial2);
array_push($dialstack, $dial3);
array_push($menustack, $dialstack);
你只需要知道 $menustack 在 $mainstack 中的索引
$arrayOne = [];
$arrayTwo = [];
$arrayThree = [];
// $arrayOne goes inside of $arrayTwo
array_push($arrayTwo, $arrayOne);
// $arrayThree goes inside of $arrayTwo[0] which is $arrayOne
array_push($arrayTwo[0], $arrayThree);
var_dump($arrayTwo);
array_push($mainstack,array_merge($menustack,$dialstack));
print_r($mainstack);
首先使用 array_merge 合并两个数组,然后将它们推入
$mainstack
array_push()
才有独特的帮助。 当您想要将引用推入数组或想要将项目推入尚未声明的数组时,它尤其没有帮助。 因此,我建议您不要在两个地方使用array_push()
,并且仅在向数组添加多个项目时使用array_push()
。
通过引用将
$menustack
推入 $mainstack
,您无需记住/猜测/计算所需的索引,以便稍后为其分配更多数据。 $menustack[]
允许您将附加条目推入其在 $mainstack
数组中的相对位置。 演示
$mainstack[] = &$menustack;
array_push($dialstack, $dial1, $dial2, $dial3);
$menustack[] = $dialstack;
var_export($mainstack);
输出:
array (
'applet' => 'Flow',
0 =>
array (
'applet' => 'Menu',
'repeat' => '2',
0 =>
array (
0 =>
array (
'applet' => 'Dial',
'number' => '165465468',
'whisper' => 'Yes',
),
1 =>
array (
'applet' => 'Dial',
'number' => '654984',
'whisper' => 'No',
),
2 =>
array (
'applet' => 'Dial',
'number' => '398965165',
'whisper' => 'Yes',
),
),
),
)