powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Создание и обработка массива
8 сообщений из 8, страница 1 из 1
Создание и обработка массива
    #32399251
Dr. Yes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть текстовый файл такого вида
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Head1
..Title11
....Element111
....Element112
....Element113
..Title12
....Element121
Head2
..Title21
....Element211
....Element212
..Title22
....Element221


Требуется создать 3-х такой мерный массив $a:
Код: plaintext
1.
2.
$a[$i] - это Headi
$a[$i][$j] - это Titleij
$a[$i][$j][$k] - это Elementijk


Я сделал так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
unset($s); $s=file( "myfile.txt" );
unset($a); $a=array(); $a[]=array(); $a[][]=array();
$x=- 1 ; $y=- 1 ; $z=- 1 ;
for($i= 0 ; $i<sizeof($s); $i++){
	$s[$i]=explode('..',$s[$i]);
	if(!empty($s[$i][ 0 ])){
		$x++; $y=- 1 ; $z=- 1 ;
		$a[$x]=$s[$i][ 0 ];

	} elseif(!empty($s[$i][ 1 ])){
		$y++; $z=- 1 ;
		$a[$z][$y]=$s[$i][ 1 ];
	} else{
		$z++; $a[$z][$y][$z]=$s[$i][ 2 ];
	};
};


Мне надо, чтобы можно было например напечатать список всех head-ов или, если задан номер какого-то head-а, распечатать список всех Title-ов, входящих в этот head. Если заданы номер head и номер title, то вывести, например количество элементов и сами элементы.

Помогите, плиз.
...
Рейтинг: 0 / 0
Создание и обработка массива
    #32399372
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что именно у тебя не получается ?
или ты хочешь, чтобы за тебя все написали ?


PS
вариант с переходом на базу данных и хранением дерева в ней не подходит ?
...
Рейтинг: 0 / 0
Создание и обработка массива
    #32399386
Фотография babaEGA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может как-нибудь упростить?

Cделать три массива:
heads
titles[j]
elems[j][k]

Потом просто просматривать файл по строкам - если в начале строки нет двух точек - значит это новый элемент в heads,
две точки - titles

ну и т.д.
...
Рейтинг: 0 / 0
Создание и обработка массива
    #32399389
Фотография babaEGA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тьфу - индексы i куда-то делись...

Я хотела сказать:
heads [m]
titles[m][j]
elems[m][j][k]

Потом просто просматривать файл по строкам - если в начале строки нет двух точек - значит это новый элемент в heads,
две точки - titles

ну и т.д.
...
Рейтинг: 0 / 0
Создание и обработка массива
    #32400149
Dr. Yes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По поводу базы данных - не подходит. Нужно именно в текстовом файле.

А вот последнее предложение я как раз уже сам рассматривал, в принципе - достаточно удобно... Но все равно спасибо за совет.
...
Рейтинг: 0 / 0
Создание и обработка массива
    #32401667
I_Work
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя... По поводу базы данных: если бы мне разъяснили все по пальцам, как можно там хранить подобное дерево и умело его использовать, то был бы очень признателен
...
Рейтинг: 0 / 0
Создание и обработка массива
    #32401748
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I_Work\r
есть несколько алгоритмов хранения деревьев в базах данных\r
Обсуждали здесь\r
\r
Сам использую алгоритм, описанный в этой статье
...
Рейтинг: 0 / 0
Создание и обработка массива
    #32402124
Pups The RAPtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я использую собственный алгоритм, только в общем варианте у меня используются не деревья, а графы :).
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Создание и обработка массива
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]