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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2011, 18:24   #11
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Попробуйте использовать stripos() для проверки первого символа(вместо str_split() и т.д.).
При использовании stripos() проверяйте результат при помощи === (!).

Последний раз редактировалось Andkorol; 04.02.2011 в 18:26.
Andkorol вне форума Ответить с цитированием
Старый 04.02.2011, 19:00   #12
KLAXON
Пользователь
 
Регистрация: 17.06.2010
Сообщений: 50
Радость

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Попробуйте использовать stripos() для проверки первого символа(вместо str_split() и т.д.).
При использовании stripos() проверяйте результат при помощи === (!).
получается весьма изящно, но по-видимому, мне все-таки не хватает перебора индексов массива $sCity:

PHP код:
$arrayDistrict = array (
                        
"Белгородская область:" => array ("Белгород""Короча"),
                        
"Воронежская область:" => array ("Воронеж""Лиски"),
                        
"Костромская область:" => array ("Кострома""Кадый")
                        );

$find_k 'к';

foreach (
$arrayDistrict as $aDistrict => $aCity)                    
{    
    echo(
"<h2>$aDistrict</h2>");                            
    
    foreach (
$aCity as $sCity)                            
    {
        
$kCity stripos($sCity$find_k);        
        for (
$i 0$i <= $sCity$i++)
        {
            if (
$kCity === "к")
            {
                echo (
"$sCity[$i];<br>");
            }
        }
    }

что не так?

Последний раз редактировалось KLAXON; 04.02.2011 в 19:05.
KLAXON вне форума Ответить с цитированием
Старый 04.02.2011, 19:08   #13
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Вам не хватает понимания принципа работы со stripos()...)))
Цитата:
stripos

(PHP 5)
stripos -- Возвращает позицию первого вхождения подстроки без учета регистра
Описание
int stripos ( string haystack, string needle [, int offset] )
Эта функция возвращает номер позиции вашей буквы "к" в строке - или FALSE, если такой буквы нет.
Соответственно - если функция возвращает 0 (первый символ в строке) - значит первая буква в названии - "к".
Andkorol вне форума Ответить с цитированием
Старый 04.02.2011, 19:15   #14
KLAXON
Пользователь
 
Регистрация: 17.06.2010
Сообщений: 50
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Вам не хватает понимания принципа работы со stripos()...)))
да, пожалуй, этого мне пока не хватает. либо пятничный вечер уже отразился на мыслительном процессе, либо я не только это не понимаю...

на экран выводятся все ок,

область
город(если есть на "к")
область
город(если есть на "к")
область
город(если есть на "к")

но снова проблема, город выводится не полностью, а только первая буква :D

PHP код:
$find_k 'к';

foreach (
$arrayDistrict as $aDistrict => $aCity)                    
{    
    echo(
"<h2>$aDistrict</h2>");                            
    
    foreach (
$aCity as $sCity)                            
    {
        
$kCity stripos($sCity$find_k);        
        for (
$i 0$i <= $sCity$i++)
        {
            if (
$kCity === 0)
            {
                echo (
"$sCity[$i];<br>");
            }
        }
    }

почему?)
KLAXON вне форума Ответить с цитированием
Старый 04.02.2011, 19:18   #15
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

А зачем вам цикл for()...?
Andkorol вне форума Ответить с цитированием
Старый 04.02.2011, 19:20   #16
KLAXON
Пользователь
 
Регистрация: 17.06.2010
Сообщений: 50
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
А зачем вам цикл for()...?
перебор индексов массива. не?

UPD: вижу, что нет. убрал - заработало. я полагал, что массив $sCity нужно еще перебирать, чтобы echo понимал, какой индекс выводить. я ошибался?

Последний раз редактировалось KLAXON; 04.02.2011 в 19:24.
KLAXON вне форума Ответить с цитированием
Старый 04.02.2011, 19:24   #17
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Какого массива..??
У вас навязчивая идея прям - "не хватает перебора индексов массива $sCity"...
$sCity - это названия ваших городов, а никакой не массив.

Вы хоть бы из любопытства вывели это значение на экран...
var_dump() полезен в таких случаях.
Andkorol вне форума Ответить с цитированием
Старый 04.02.2011, 19:29   #18
KLAXON
Пользователь
 
Регистрация: 17.06.2010
Сообщений: 50
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Какого массива..??
У вас навязчивая идея прям - "не хватает перебора индексов массива $sCity"...
$sCity - это названия ваших городов, а никакой не массив.

Вы хоть бы из любопытства вывели это значение на экран...
var_dump() полезен в таких случаях.
вот как раз поэтому у меня и возникли сомнения, правильно ли я читаю свой же скрипт. теперь понятно, что foreach перебирает массив, временно занося значения в переменные, а не формируя другие массивы.

thx 4 терпение и желание помочь!
KLAXON вне форума Ответить с цитированием
Старый 04.02.2011, 19:33   #19
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Всегда выводите всё на экран(если есть какие-то сомнения), var_dump() и echo() - самые лучшие дебаггеры...))
С применением визуализации результатов работы - быстрее приходит понимание принципов работы той или иной конструкции.
Andkorol вне форума Ответить с цитированием
Старый 04.02.2011, 19:44   #20
KLAXON
Пользователь
 
Регистрация: 17.06.2010
Сообщений: 50
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Всегда выводите всё на экран(если есть какие-то сомнения), var_dump() и echo() - самые лучшие дебаггеры...))
С применением визуализации результатов работы - быстрее приходит понимание принципов работы той или иной конструкции.
обязательно буду иметь ввиду, спасибо за совет.

честно говоря, были мысли в процессе исполнения скрипта выводить на экран промежуточные результаты и результаты исполнения отдельных блоков, но я не делаю этого. скорее всего потому, что это утяжеляет код и делает его больше. меня пока пугают большие коды чем код больше, тем я больше теряюсь что ли...
KLAXON вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка синтаксиса в Acceess Droid БД в Delphi 3 06.06.2012 10:32
Ошибка синтаксиса Santosh Microsoft Office Access 2 18.08.2010 00:15
Ошибка синтаксиса в предложении FROM general_krasnov БД в Delphi 7 04.06.2010 17:39
Помогите с запросом SQL. Ошибка синтаксиса в выражении запроса. ZiG24RUS Microsoft Office Access 1 19.05.2009 06:29
EOleException 'Ошибка синтаксиса в предложении FROM' XATAB БД в Delphi 5 24.11.2008 05:43