|
|
|
|
|
для: Саня
(04.05.2006 в 21:26)
| | Я только за! Но вот хостеры что-то не торопятся... Спасибо! | |
|
|
|
|
|
|
|
для: Tema
(04.05.2006 в 21:12)
| |
<?php
$fp = fopen("file.csv", "r");
$a = array();
while ( ($data = fgetcsv($fp, 1000, ";")) !== false ) {
$expld = explode("/", $data[0], 2);
$a[$expld[0]][] = $data;
}
foreach ( $a as $key => $val ) {
$f = fopen($key.".csv", "wt");
foreach ( $val as $str ) {
$data = "";
foreach ( $str as $ent ) { $data .= '"'.$ent.'";'; }
$data = trim($data, ";")."\n";
fputs($f, $data);
}
fclose($f);
}
?>
|
А для PHP 4 как можно сделать, ведь там еще нет putcsv())
Ещё один плюс в пользу перехода на PHP5 :) | |
|
|
|
|
|
|
|
для: Саня
(04.05.2006 в 20:48)
| | А для PHP 4 как можно сделать, ведь там еще нет putcsv()? :( | |
|
|
|
|
|
|
|
для: Tema
(03.05.2006 в 21:22)
| |
<?php
$fp = fopen("file.csv", "r");
$a = array();
while ( ($data = fgetcsv($fp, 1000, ";")) !== false ) {
# вырезаем название первого элемента
$expld = explode("/", $data[0], 2);
# ...и помещаем в один массив
$a[$expld[0]][] = $data;
}
# разбираем массив
foreach ( $a as $key => $val ) {
# создание нового файла, например Item1.csv
$f = fopen($key.".csv", "wt");
# в цикле запишем в новый файл строки
foreach ( $val as $str ) {
fputcsv($f, $str, ";");
}
fclose($f);
}
?>
|
| |
|
|
|
|
автор: Fly (04.05.2006 в 12:55) |
|
|
для: Tema
(03.05.2006 в 21:22)
| | У меня тоже такая проблема, подскажите как сделать? | |
|
|
|
|
|
|
|
для: Tema
(02.05.2006 в 22:03)
| | А еще такой вопрос. Как можно этот же файл:
"Item1/Item2/Item3";"Название чего-либо";"123221683";"7888,5";"шт";1
"Item1/Item2/Item3";"Название чего-либо";"12121683";"7818,5";"шт";2
"Item2/Item2/Item4";"Название чего-либо";"12231683";"78238,3";"шт";1
"Item3/ItemM/ItemN";"Название чего-либо";"125216812";"7238,5";"шт";1
"ItemS/ItemM/ItemN";"Название чего-либо";"125216812";"7238,5";"шт";1
Разбить на отдельные файлы, по Item1...S. Т.е. как определить где заканчивается, скажем, Item1 и начинается Item 2, а за ним Item3 и так далее? | |
|
|
|
|
|
|
|
для: Саня
(02.05.2006 в 21:27)
| | Спасибо! То что надо. | |
|
|
|
|
|
|
|
для: Tema
(02.05.2006 в 20:16)
| |
<?php
$fp = fopen("csv.txt", "r");
$a = array();
while ( ($data = fgetcsv($fp, 1000, ";")) !== false ) {
$expld = explode("/", $data[0]);
# определение массива с пунктами меню первого уровня
if ( !isset($a[$expld[0]]) ) $a[$expld[0]] = array();
# занесение в массив данных, которые не повторяются в массиве первого уровня
if ( !in_array($expld[1], $a[$expld[0]]) ) $a[$expld[0]][] = $expld[1];
if ( !in_array($expld[2], $a[$expld[0]]) ) $a[$expld[0]][] = $expld[2];
}
print "<pre>";
print_r($a);
|
| |
|
|
|
|
|
|
|
для: Саня
(02.05.2006 в 18:42)
| | Почти так. Структура немного не так получилась. Вот так надо:
Item1
------Item2
------Item3
ItemS
------ItemM
------Item4
Т.е. списком выводить первые позиции в "Item1/Item2/Item3", в данном случае это Item1. | |
|
|
|
|
|
|
|
для: Tema
(02.05.2006 в 17:41)
| |
<?php
# откроем файл
$fp = fopen("csv.txt", "r");
# массив, в который будут помещаться все значения из файла
$a = array();
# в цикле построчно прочтём файл
while ( ($data = fgetcsv($fp, 1000, ";")) !== false ) {
# разбивка по символу "/"
$expld = explode("/", $data[0]);
# добавим в массив $a полученные значения
foreach ( $expld as $val ) array_push($a, $val);
}
# из массива $a удалим все дублирующиеся значения
$b = array_unique($a);
print "<pre>";
print_r($b);
?>
|
| |
|
|
|
|