За последние 24 часа нас посетили 23586 программистов и 1664 робота. Сейчас ищут 849 программистов ...

Массив, складывание в переменную.

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

  1. Dima4321

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

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Коды упростил как мог, чтобы было понятно.

    Первый код работает корректно.

    Код (Text):
    1. foreach($h3 as $keyh3)
    2. {
    3. preg_match_all('/\b([a-z]+)\b/si',$buf,$m);// ищем английские слова в тексте
    4. $kol=count($m[1]);// кол-во англ. слов
    5.  
    6. preg_match_all('/\b([а-я]+)\b/si',$buf,$m);// ищем русские слова в тексте
    7. $kol2=count($m[1]); // кол-во русских слов
    8.  
    9.  
    10. $keyh3=preg_replace('/[а-я]+/si','',$keyh3);
    11. preg_match_all('/(<h3.+?(<\/h3>))/',$keyh3,$match);
    12. foreach($match[1] as $h33)
    13. {
    14.  
    15. if(($kol)>$kol2)
    16. {
    17. echo $h33;  // если английских слов больше выводим нужные блоки.
    18.  
    19. }

    Во втором коде то же самое. Только я не вывожу полученные блоки, а складываю в переменную.


    Код (Text):
    1.  
    2. $a="";
    3. foreach($h3 as $keyh3)
    4. {
    5. preg_match_all('/\b([a-z]+)\b/si',$buf,$m);// ищем английские слова в тексте
    6. $kol=count($m[1]);// кол-во англ. слов
    7.  
    8. preg_match_all('/\b([а-я]+)\b/si',$buf,$m);// ищем русские слова в тексте
    9. $kol2=count($m[1]); // кол-во русских слов
    10.  
    11.  
    12. $keyh3=preg_replace('/[а-я]+/si','',$keyh3);
    13. preg_match_all('/(<h3.+?(<\/h3>))/',$keyh3,$match);
    14. foreach($match[1] as $h33)
    15. {
    16.  
    17. if(($kol)>$kol2)
    18. {
    19. $a.=$h33;
    20.  
    21. }
    22. }
    23. }
    24. echo $a;
    Итог имею результат, но фактически в него попадет и всякий шлак. Т.е. как буд-то условие $kol>$kol2 не работает.

    Что не так ???

    Заранее спасибо.
     
  2. Dima4321

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

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Вопрос снят. Оказалось, что в одном случае я просто не указал

    setlocale(LC_ALL, 'ru_RU.CP1251', 'rus_RUS.CP1251', 'Russian_Russia.1251');