За последние 24 часа нас посетили 61028 программистов и 1683 робота. Сейчас ищут 1184 программиста ...

цикл, и условие

Тема в разделе "PHP для новичков", создана пользователем smala, 6 июл 2011.

  1. smala

    smala Активный пользователь

    С нами с:
    11 янв 2011
    Сообщения:
    137
    Симпатии:
    0
    вот отрывок кода:
    PHP:
    1. $co_6 = preg_match_all('#[0-9,(,), ,-]+#i', $ex, $mass_4);
    2. echo 'Номер тел:<br>';
    3. for($ir=0;$ir<$co_6;$ir++){
    4. $cell = strlen($mass_4[0][$ir]);
    5. echo $cell.' ';
    6. if ($cell > 9){
    7. echo $mass_4[0][$ir].',';
    8. }
    9. }
    результат выполнения:
    Код (Text):
    1. 1 8 1 1 2 12 ,1 16 ,1 16 ,1 16 ,1 16 ,1 16 ,1 16 ,12 ,12 ,1 7 2 16 ,3 3 16 ,2 3 16 ,3 3 1 16 ,3 3 1 16 ,3 3 1 16 ,2 3 12 ,8 1 1 1 1 8 1 1 3 5 4 8 1 12 ,1 1 1 1 2 1 4 1 1 8 1 1 1 1 2 4 1 2 5 1 8 2 1 1 1 1 1 12 ,1 1 1 1 1 1 1 1 2 1 4 1 1 8 1 8 8 1 12 ,4 12 ,1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 6 1 1 2 1 8 3 3 1 1 1 1 1 1 1 1 1 1 1 10 ,8 8 1 3 3 6 3 4 4 2 7 1 1 4 3 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 5 1 4 3 1 1 1 1 1 2 1 1 1 1 1 5 1 3 1 3 1 5 1 1 1 1 1 1 1 2 1 1 5 1 1 6 1 1 3 2 3 1 10 0675062273,1
    я в общем делаю условие чтоб вывело номер если количество символов в строке больше 9 вот так я пробую

    PHP:
    1. $co_6 = preg_match_all('#[0-9,(,), ,-]+#i', $ex, $mass_4);
    2. echo 'Номер тел:<br>';
    3. for($ir=0;$ir<$co_6;$ir++){
    4. $cell = strlen($mass_4[0][$ir]);
    5. if ($cell > 9){
    6. echo $mass_4[0][$ir].',';
    7. }
    8. }
    а мне выводит
    Код (Text):
    1. , , , , , , , , , , , , , , , , , , , , ,0675062273,
    тоесть $mass_4[0][$ir] выдает пустую строку, ну я решил добавить условие:
    PHP:
    1. $co_6 = preg_match_all('#[0-9,(,), ,-]+#i', $ex, $mass_4);
    2. echo 'Номер тел:<br>';
    3. for($ir=0;$ir<$co_6;$ir++){
    4. $cell = strlen($mass_4[0][$ir]);
    5.  
    6. if ($cell > 9){
    7. if($mass_4[0][$ir] !== ''){
    8. echo $mass_4[0][$ir].',';
    9. }
    10. }
    11. }
    и получаю результат:
    , , , , , , , , , , , , , , , , , , , , ,0675062273,
    в чем же дело ??? может есть функция которая считает только числовые значения строки, или что подскажите, как проблему решить ???, или сразу в РЕГУЛЯРКЕ #[0-9,(,), ,-]+#i указать минимальное количество символов, и как это сделать в регулярке, я незнаю как в регулярке указывать типа больше 9 символов((( помогите мне
     
  2. alive342

    alive342 Активный пользователь

    С нами с:
    21 апр 2011
    Сообщения:
    137
    Симпатии:
    0
    Адрес:
    Российская Федерация
    ну как сказать... конечно регулярки разные бывают, но у тебя что то совсем странная
    [0-9,(,), ,-] ужс
    количество символов можно задать так (опускаем содержание [])
    [...]{9}, где 9 - кол-во. Или можно задать диапазон [...]{1,9} где 1 мин и 9 макс кол-во символов.
    короче лучше тебе почитать http://www.ozon.ru/context/detail/id/4066500/
    поможет в дальнейшем оч сильно :)