Новый ответ:
Основываясь на комментариях ниже, я думаю, что понимаю проблему. Я могу придумать два решения этого.
Первое решение: Первое - самое простое, но для его работы требуется PHP 7.4+.
Вы можете использовать новую функцию, которая называется оператором уклона. (...) где вы можете "распаковать" один массив в другой. Вот пример:
<?php
$sub_arrays = [array("middle" => "array"), array(), array("external"=>"array")];
$array = array(
'template' => array(
array(
array(),
array(
array('first'=>"array"),
...$sub_arrays, // use it here
array('last'=>"array")
)
),
),
);
print_r($array);
Демонстрация в реальном времени: https://3v4l.org/s4Q8u
Второе решение: Это немного сложнее, чем первое. Это включает обертывание массива в функцию и динамическое создание родительского массива $ sub_arrays. Смотрите это:
<?php
$sub_arrays = [array("middle" => "array"), array(), array("external"=>"array")];
function create_array($sub) {
$parent_array[] = array('first'=>"array");
foreach($sub as $s)
{
$parent_array[] = $s;
}
$parent_array[] = array('last'=>"array");
$array = array(
'template' => array(
array(
array(),
$parent_array
),
),
);
return $array;
}
print_r(create_array($sub_arrays));
Демонстрация в реальном времени: https://3v4l.org/1Vahd
Надеюсь, это поможет.
Старый ответ:
Ваши вопросы опускают много деталей, чтобы понять, почему вы пытаетесь это сделать.
Например:
Заключение списка массивов в массивхотя объявление переменной не является опцией,
как $ sub_array вставляется в массив $, на каком этапе они находятся внутри класса или функции?
В любом случае, из того, что я понял, я думаю, список - это то, что вы ищете.
См. Этот пример:
<?php
list($a, $b) = [array('example' => 'test'), array('another' => 'array')];
var_dump($a, $b);
Вы также можете использовать список для вложенных массивов, например:
list($a, list($b, $c)) = [array('example' => 'test'), array(array('another' => 'array'), array('I am nested'=>'array'))];
var_dump($a, $b, $c);