Так что у меня возникают проблемы, когда я перебираю строку и вставляю ее символы в виде индексных массивов в многомерный ассоциативный массив. Так что в основном это куча многомерных массивов в многомерных массивах в многомерных массивах ... Это немного хлопотно, так как я не могу сделать это вручную. Мне нужен автоматизированный способ сделать это с кучей строк. Следующий пример объяснит это немного лучше, я думаю:
//string i want to enter
$string = 'ADAM';
//array i want to end up with
$result = array
(
'A'=> array
(
'D'=>array
(
'A'=>array
(
'M'=>array
(
'result'=>'ADAM'
)
)
)
)
)
Мой первоначальный подход заключался в использовании условий if для вставки первого Char как Array в основной массив, например:
for($i = 0; $i < strlen($string); $i++){
if($i == 0){
$array1[$word[$i]] = array();
}
}
, который работает довольно хорошо. Но потом я столкнулся с проблемой: как отслеживать текущую точку в массиве? После проверки if я буду go для оператора else, который действует, когда $ i больше 0. Но если я хочу вставить следующее измерение массива, которое в этом случае будет 'D', мне понадобится чтобы выбрать $ array1 ['A'], для следующего мне понадобится $ array1 ['A'] ['D'] et c. Я не смог найти способ сделать это. Строки, которые мне нужны, чтобы попасть в этот массив, варьируются от 4 до 70 символов. Каждый известный мне метод изменял только 2-е измерение, поэтому я получил:
$array1('A'=>array ('A' =>array()));
$array1('A'=>array ('D' =>array()));
$array1('A'=>array ('A' =>array()));
$array1('A'=>array ('M' =>array()));
или недопустимые ошибки смещения, вызванные тем, что индексы сами являются массивами. Возможно, мой подход здесь невозможен, но я все же подумал, что могу спросить, если что-то пропустил.
На более позднем этапе я собираюсь использовать один и тот же массив для всех строк, поэтому я в основном использую символы в качестве узлов. Если «A» в качестве первого символа уже существует, я бы пропустил его и вставил 2-й символ следующей строки в «A'-Array et c.
Заранее спасибо!