Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2011, 10:46   #1
alt5000
PHP
Пользователь
 
Аватар для alt5000
 
Регистрация: 28.03.2007
Сообщений: 70
Стрелка Виснет на втором цикле

Пытаюсь парсить таким вот образом

PHP код:
function parse_csv($fn)
{


        
$fp fopen($fn'r');

        
$array file($fn); // Каждую строку в элемент массива

        
$i2 0;

        while (
$i<=count($array))
        {
            
$pieces explode(";"$array[$i]); // Разбили на поля
            
$i1 0;

                while (
$i1<=count($pieces))
                {
                    if (
strlen($pieces[$i1])>=3)
                    {
                        echo(
"<br><b>".$i2."</b>");
                        
$arr_res[$i2]=$pieces[$i1];
                        echo(
" = ".$arr_res[$i2]);
                        
$i2++;
                    }

                    
$i1++;
                }
            
$i++;
        }

        
$i=0;

        while (
$i<=count($arr_res))
        {
            echo(
"< = >".$arr_res[$i]."<br>");
        }

Однако, на втором цикле все зависает. И по идее должен быть сплошной массив. А свой count() он выдает как 3. На самом деле реальных строк, попадающих под условие strlen>=3 символа, действительно 3. Не подскажете в чем я ошибся?
alt5000 вне форума Ответить с цитированием
Старый 08.12.2011, 10:49   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,219
По умолчанию

Код:
while ($i<=count($arr_res))
        {
            echo("< = >".$arr_res[$i]."<br>");
        }
Счетчик надо как-то увеличивать.
Arigato вне форума Ответить с цитированием
Старый 08.12.2011, 12:13   #3
alt5000
PHP
Пользователь
 
Аватар для alt5000
 
Регистрация: 28.03.2007
Сообщений: 70
По умолчанию

Да, совсем что-то заморочился. Извините, впредь буду внимательней.
alt5000 вне форума Ответить с цитированием
Старый 08.12.2011, 19:37   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,219
По умолчанию

Цитата:
Сообщение от alt5000 Посмотреть сообщение
Извините, впредь буду внимательней.
Да ничего страшного

Кстати, для перебора элементов массива можно использовать foreach, тогда и счетчик не потребуется:

PHP код:
foreach ( $arr_res as $x ) echo("< = >$x<br>"); 
Arigato вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбор из одного столбца по условию выполняющемуся во втором столбце mjpv Microsoft Office Excel 2 30.04.2011 11:58
Два столбца таблицы, во втором - поле, в первом - визуальное название этого поля Krasi HTML и CSS 1 31.07.2010 00:30
Найти данные по артикулу во втором файле и скопировать в первый. kamarella Microsoft Office Excel 2 20.01.2010 06:34
Фильтрация данных на втором листе по данным на первом ppl Microsoft Office Excel 3 13.08.2008 14:07
Минобороны ограничит передвижение мужчин призывного возраста - законопроект одобрен во втором чтении Alar Свободное общение 14 27.03.2008 23:49