Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Преобразование одномерного массива в многомерный
Покинул форум
Сообщений всего: 223
Дата рег-ции: Май 2011
Помог: 1 раз(а)
Задача такая есть примерно такой одномерный массив
первый
-первыйпервый
-первыйвторой
--первыйвторойпервый
--первыйвторойвторой
второй
-второйпервый
третий
нужно преобразовать в это
array(
[0]=>первый(
array [0]=>первыйпервый; [1]=>первыйвторой;
[1]=>первыйвторой(
array([0]=>первыйвторойпервый,[1]=>первыйвторойвторой),
[2]=>второй(
array [0]=>второйпервый;)
[3]=>третий
)
т.е нужно исходя из кол-ва черточек впереди каждого элемента составить многомерный массив любой степени вложености
armancho7777777
Отправлено: 09 Июля, 2012 - 23:25:29
Активный участник
Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011 Откуда: Москва
Помог: 221 раз(а)
Скажите, от куда это берётся, чем генерируется, для чего всё это.
И тогда получите, возможно, оптимальное решение.
Telnet
Отправлено: 09 Июля, 2012 - 23:37:10
Частый гость
Покинул форум
Сообщений всего: 223
Дата рег-ции: Май 2011
Помог: 1 раз(а)
armancho7777777 пишет:
Скажите, от куда это берётся, чем генерируется, для чего всё это.
И тогда получите, возможно, оптимальное решение.
Берется модератор сайта, вводит в админ панели таким образом связанный список
Хочу сделать из этого многомерный массив потом пройтись рекурсией и по наделать связанных списков (Добавление)
БЫло
Array
(
[0] => первый
[1] => -первыйпервый
[2] => -первыйвторой
[3] => второй
[4] => -второйпервый
[5] => третий
)
обработка
//$parent_id->это индитификатор родительской категории по нему будут выстраиватся дети и дети детей и т.д
privatefunction cat_rekyrs($cats,$parent_id)
{//проверяем существует ли массив и количество записей в нашем родителе
if(@is_array($cats) and count(@$cats[$parent_id])>0)
{
echo"<ul>";
//в цикле перебираем наш много мерный массив
foreach($cats[$parent_id]as$cat)
{
echo"<li><a href='#' >".$cat."</a></li>";
//вызываем еще раз наш метод для того что бы вытащить из нашего родителя детей и так получается рекурсия которая формирует список и вытаскивает детей и детей их детей
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.