|
автор: Посетитель! (09.05.2005 в 03:23) |
|
| в файле такие данные
ddd = fff = + = ggg
ddd = fff = # = ggg
ddd = fff = * = ggg
ddd = fff = + = ggg
ddd = fff = out = ggg
ddd = fff = # = ggg
ddd = fff = + = ggg
ddd = fff = *-off = ggg
ddd = fff = * = ggg
ddd = fff = +-off = ggg
|
нужно получить 3 списка где через зпятую расположены 1 переменные.
в первом списке должны быть 1 переменные в которых 3 переменные + и #.
во втором 1 переменные в которых 3 переменные out .
в третем 1 переменные в которых 3 переменные *-off и #-off и +-off | |
|
|
|
|
|
|
|
для: Посетитель!
(09.05.2005 в 03:23)
| | Не очень понятно что значит "1 переменные" и "3 переменные", не могли бы вы привести списки, которые должны получится в результате? | |
|
|
|
|
автор: посетитель (09.05.2005 в 12:58) |
|
|
для: Посетитель!
(09.05.2005 в 03:23)
| | допустим есть файл в нём строки.
1ввв = ааа = + = ппп
2ввв = ааа = # = ппп
3ввв = ааа = +-off = ппп
4ввв = ааа = * = ппп
5ввв = ааа = out = ппп
6ввв = ааа = *-off = ппп
1 список долженн содержать:
1ввв , 2ввв, 4ввв
второй список: 6ввв, 3ввв
третий список: 5ввв | |
|
|
|
|
автор: посетитель (09.05.2005 в 19:21) |
|
|
для: посетитель
(09.05.2005 в 12:58)
| | в один могу а в 3 чтото никак непойму. | |
|
|
|
|
|
|
|
для: посетитель
(09.05.2005 в 12:58)
| | Для этого удобно воспользоваться регулярными выражениями
<?php
// Разбиваем содержимое файла на строки
// которые помещаем в массив $lines
$lines = file("file.txt");
// В цикле разбираем строку
foreach($lines as $line)
{
preg_match('|^([^\s]+)[^=]=+\s[^\s]+[^=]=+\s([^\s]+)|i', $line, $out);
if($out[2] == '+' || $out[2] == '#' || $out[2] == '*') $first[] = $out[1];
if($out[2] == 'out') $second[] = $out[1];
if($out[2] == '*-off' || $out[2] == '#-off' || $out[2] == '+-off') $third[] = $out[1];
}
echo "<pre>";
print_r($first);
print_r($second);
print_r($third);
echo "</pre>";
?>
|
Первый массив в $first, второй в $second, третий в $third. | |
|
|
|
|
автор: посетитель (09.05.2005 в 23:13) |
|
|
для: cheops
(09.05.2005 в 21:07)
| |
<?php
if($out[2] == '+' || $out[2] == '#' || $out[2] == '*') $first .= $out[1].$out[2].", ";
echo $first.
?>
|
как сделать подсчёт количества элементов в списке | |
|
|
|
|
|
|
|
для: посетитель
(09.05.2005 в 23:13)
| | Вот именно в таком, через запятую? Тогда следует воспользоваться функцией substr_count()http://www.softtime.ru/dic/id_dic=9&id_group=1, подсчитать число запятых в строке и прибавить единицу.
<?php
echo substr_count($first,",");
?>
|
| |
|
|
|