|
|
|
|
|
для: freeing
(02.02.2010 в 14:44)
| | Это не решение. Неопределенные переменные в коде. | |
|
|
|
|
|
|
|
для: Trianon
(02.02.2010 в 12:15)
| | Решение!
<?php
$string = array
(
"1",
"1.1",
"1.2",
"1.3",
"1.3.1",
"1.3.2",
"1.3.2.1",
"1.3.2.2",
"1.3.3",
"1.3.4",
"1.3.4.1",
"1.3.4.2",
"1.3.4.3",
"1.3.4.4",
"1.3.5",
"1.3.6",
"1.4",
"1.5",
"2",
"2.1",
"2.2",
"2.3",
"2.3.1",
"2.3.2",
"2.3.2.1",
"2.3.2.2",
"2.3.3",
"2.3.4",
"2.3.4.1",
"2.3.4.2",
"2.3.4.3",
"2.3.4.4",
"2.3.5",
"2.3.6",
"2.4",
"2.5",
);
foreach ($string as $key => $val)
{
$p = &$array;
$i = 0;
while($i = strpos($val.'.','.',$i + 1))
{
if (!is_array($p))
{
$p = array();
}
$p = &$p[substr($val, 0, $i)];
}
if (!is_array($p))
{
$p = $val;
}
}
$p = &$array;
print "<pre>";
print_r($p);
?>
|
| |
|
|
|
|
|
|
|
для: freeing
(01.02.2010 в 17:39)
| | функции обратного вызова я применять не предлагал.
Про "усложняет работу программы" уместно говорить, сравнивая уже работающие (или хотя бы работоспособные) варианты. У Вас есть с чем сравнивать?
Или Вы про "усложняет работу программиста"? | |
|
|
|
|
|
|
|
для: Саня
(01.02.2010 в 17:13)
| | так что за списки? | |
|
|
|
|
|
|
|
для: Trianon
(01.02.2010 в 10:18)
| | не хотел бы использовать рекурсию и функции обратного вызова, это усложняет работу программы, я итак с трудом пошел на перебор массивов | |
|
|
|
|
|
|
|
для: Саня
(01.02.2010 в 17:13)
| | ну вот пример:
есть страница новости
имя страницы /news
файл с описанием 2.8.txt
есть станица новость 1
имя страницы /news/new1
файл с описанием 2.8.1.txt
то есть данный разбор $id необходим чтобы сделать правильный request:
http://test.com/news/
http://test.com/news/new1/
http://test.com/news/new2/
которые в свою очеред читают файлы:
2.8.txt
2.8.1.txt
2.8.2.txt
может я делаю что-то не так, приведи пример со списками если не сложно... | |
|
|
|
|
|
|
|
для: freeing
(01.02.2010 в 17:02)
| | Я так и не понял чем дерево лучше списка в данном конкретном случае.
Если этот массив будет использован для вывода в браузер, то древовидная структура абсолютно не нужна. | |
|
|
|
|
|
|
|
для: Саня
(01.02.2010 в 09:37)
| | суть данного массива, и последующего его перебора, заключается в том что я имею и пытаюсь организовать группу имен и ссылок
есть массив вида:
$id он приведен выше
$nаme содержащий в себе имена страниц
$filе файл для дальнейшей загрузки содержимого страницы
$id который я обрабатываю указывает какая страница к какой относится
то есть, раздел, под раздел
$nаmе указывает какое имя использовать для request, проще говоря это псевдонимы для $id
$file указывает с какого файла с читать данные
и все это с рядом проверок на наличие записи, файлов....
так что уникальные имена вида 1.1, 1.1.1...
это наилучший вариант для распределение разделов и под разделов | |
|
|
|
|
|
|
|
для: freeing
(01.02.2010 в 02:28)
| | Очень редкий пример задачи, которую, хотя она формально и не требует рекурсии, я всё же стал бы решать рекурсивным спуском. | |
|
|
|
|
|
|
|
для: freeing
(01.02.2010 в 02:28)
| | В большинстве случаев многомерный массив не нужен. Вы можете обосновать необходимость такого массива? | |
|
|
|
|