[Редактировать] Надеюсь, на этот раз я понял вопрос ...
Если у вас есть строка и массив, подобный этому:
$str = 'test';
$a = array('some', 'sub', 'page');
Вы можете сначала инициализировать полученный массив таким образом, имея дело со специальным случаем последнего элемента:
$arr = array($a[count($a)-1] => $str);
Затем вы можете перебирать каждый элемент массива $a
, начиная с конца (и не работая с последним элементом, с которым мы уже имели дело) :
for ($i=count($a) - 2 ; $i>=0 ; $i--) {
$arr = array($a[$i] => $arr);
}
При этом выгрузка полученного массива:
var_dump($arr);
Должен получить ожидаемый результат:
array
'some' =>
array
'sub' =>
array
'page' => string 'test' (length=4)
Старый ответ ниже, прежде чем понять вопрос:
Вы можете объявить свой массив следующим образом:
$arr = array(
'some' => array(
'sub' => array(
'page' => $str,
),
),
);
Или, используя несколько отдельных шагов (может быть проще, в зависимости от того, как вы строите свои подмассивы, особенно в более сложном случае, чем текущий пример) :
$sub2 = array('page' => $str);
$sub1 = array('sub' => $sub2);
$arr = array('some' => $sub1);