Массив из текстового файла.

JackX

Новичок
Массив из текстового файла.

Подскажите, пожалуйста, как нарезать ниже указанный текстовый файл:

1-Кухонный текстиль|12-1
1-Кухонный текстиль|12-2
1-Кухонный текстиль|12-3
2-Керамика|11-1
2-Керамика|15-3
2-Керамика|9-2
3-Кухонные инструменты|18-3
3-Кухонные инструменты|32-1
3-Кухонные инструменты|51-2

Чтобы получить такой массив:

$a[12][1] = '1-Кухонный текстиль';
$a[12][2] = '1-Кухонный текстиль';
$a[12][3] = '1-Кухонный текстиль';
$a[11][1] = '2-Керамика';
$a[15][3] = '2-Керамика';
$a[9][2] = '2-Керамика';
$a[18][3] = '8-Кухонные инструменты';
$a[32][1] = '8-Кухонные инструменты';
$a[51][2] = '8-Кухонные инструменты';

Ключи массива это цыфры разделенные "-" а значения это строки типа "2-Керамика".
_______________________

Если кому интересно зачем это нужно:

У нас есть программка для учёта товара, из которой я делаю выгрузку для сайта как раз в виде похожего массива.
Но она самопальная и к программеру невозможно обратиться.
Так сложилось что группы, в которых лежать наименования товаров с давних времен имеют жуткие названия. И изменить их уже невозможно. Вот я и подумал, что было бы удобно разложить фотографии по папкам, которые соответствовали бы нормальным группам товара и из этого сделать массив, который я бы смог прикрутить к сайту, объединив выгрузку из проги и этот массив из папок.

Вот макет, который я сделал из выгрузки нашей проги. http://baigon.ru/my/array.php?ra=4
Слева как раз те ужасные названия групп, о которых я говорю.

Только не смейтесь над страницей. Я PHP изучаю недели 2 только. Это первые шаги.
 

BigWindow

Новичок
В первой строчке выбираешь то, что после слэша.
Во второй и третьей цифры по регулярке выковыриваешь.

Читаем ман и пробуем.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума

JackX

Новичок
Mr_Max

Этот текстовый файл который я показал генерится из дерева папок.
Я распихиваю фотографии по папкам и создаю текстовый файл.

Повторов там быть не должно.

Если есть совет как сразу создать массив из дерева папок и файлов буду очень рад.

Я тут уже смотрел. Просидел целый день и ничего путного не вышло.
 

jonjonson

Охренеть
JackX, для начала по русски опиши порядок действий. Типа...
Построчно читаем файл.
если строка начинается с точки
то присваиваем временной переменной знач...
иначе
отсекаем расширение по точке
получаем два ключа массива, разделяя по -
...
...

А далее, как уже упоминалось, используем функции работы с файлами, цикл, строковые функции и массив и пишем код. :)
 

JackX

Новичок
Автор оригинала: jonjonson
... используем функции работы с файлами, цикл, строковые функции и массив и пишем код.
ндаа...
И как я сам не догадался. Оказывается надо код написать! Ёлки-палки!!
А я думал надо отвёрткой крутить и паяльником тыкать.

Спасибо за "совет".

Я извиняюсь, конечно... Возможно это неуместная шутка.
Но нельзя ли подробнее.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
JackX
Давайка без сарказма
Подробнее будет, когда будут шевеления с твоей стороны.

Или ты ожидал что все бросятся вместо тебя кодить?

Без проблем.
Составляй ТЗ, выставляй стоимость и раздел Работа к твоим услугам
 

JackX

Новичок
Mr_Max , прошу прощения если кого обидел.

Вот написал такую бурду.
Это сократило немного строку.

вместо: ../php/img/5-Кухонный текстиль|12-1.jpg
получил: 5-Кухонный текстиль|12-1

<?

$a = "../php/img/5-Кухонный текстиль|12-1.jpg";

$namekodjpg = str_replace ( "../php/img/","", $a ); //убираю из строк ненужное - "../php/img/"
$namekod = str_replace ( ".jpg","", $namekodjpg ); //убираю из строк ненужное - ".jpg"
$name = strtok ( $namekod, "|" ); //Обрезаю строку после символа "|"
$number = strtok ( $namekod, "-" ); //Обрезаю строку после первого символа "-"

echo "$namekod <br> $name <br> $number";

?>
В итоге получаю:
отдельно: 5-Кухонный текстиль|12-1 ($namekod)
отдельно: Кухонный текстиль ($name)
отдельно: 5 ($number)

Вот теперь пытаюсь в переменные загнать цифры разделённые "-"
Если есть, у кого совет как обрезать строку от конца до символа "|" буду очень признателен.

Когда получится, попробую всё это делать в цикле.
 

Crys

Двинутый новичок
http://phpclub.ru/detail/article/regexp_1
http://phpclub.ru/detail/article/regexp_2
 
Сверху