Проверяю индексы ( $key) т.к. они являются словами.
Если слово входит, то тогда не выводить его.
Пользуюсь strpos.
foreach($n as $key=>$value)
{
if(strlen($key)>=3
and $value>=4
and !strpos(strtolower($name),strtolower($key))
and !strpos(strtolower($words),strtolower($key)))
{
echo $key;
}
}
В результате например :
если $name=Black Sabbath и $key=Black ---- то слово Black выведется ...не понимаю почему. Он же с нулевой позиции ищет !! ???
Помогите пожалуйста.
Та же проблема была с
$words=' that, there, were, this, when, they, they, some, have, their, some, just, very, said, more, made
';
если $key=that-----
Выводил слово that ,хотя не должен. Помог отступ в начале строки.
Ваши мысли ??))
Спустя 10 минут, 52 секунды (14.03.2011 - 13:15) Лена написал(а):
foreach($n as $key=>$value)
{
if(strlen($key)>=3
and strlen($value)>=4
and strpos(strtolower($name),strtolower($key))!==false
and strpos(strtolower($words),strtolower($key)) !==false)
{
echo $key;
}
}
Если не выходит, покажите, что у вас в массиве $n.
Кодировка скрипта какая?
Спустя 26 минут, 37 секунд (14.03.2011 - 13:42) dima4321 написал(а):
Идея твоя правильная...))
вот так работает
foreach($n as $key=>$value)
{
if(strlen($key)>=3
and $value>=4
and !strpos(strtolower($words),strtolower($key)))
{
$pos=strpos(strtolower($name),strtolower($key));
if(($pos === false))
{
echo ucfirst(strtolower($name))." ".$key.', ';
}
}
}
Твой пример не выводит ничего ))
но вот так ===false ---он работает корректно.
вот так работает
foreach($n as $key=>$value)
{
if(strlen($key)>=3
and $value>=4
and !strpos(strtolower($words),strtolower($key)))
{
$pos=strpos(strtolower($name),strtolower($key));
if(($pos === false))
{
echo ucfirst(strtolower($name))." ".$key.', ';
}
}
}
Твой пример не выводит ничего ))
но вот так ===false ---он работает корректно.
foreach($n as $key=>$value)
{
if(strlen($key)>=4
and $value>=4
and strpos(strtolower($name),strtolower($key))===false
and strpos(strtolower($words),strtolower($key))===false)
{
echo ucfirst(strtolower($name))." ".$key.', ';
}
}
Спустя 25 секунд (14.03.2011 - 13:42) Trianon написал(а):
dima4321
Потому что Вы не отличаете false и 0 , которые возвращает strpos.
0 - означает "найдено с нулевой позиции строки"
false - означает - не найдено.
Поэтому костыль в виде отступа и спас.
Кстати о отступах.
Неплохо было бы ствить отступы в коде.
Читать же невозможно.
Потому что Вы не отличаете false и 0 , которые возвращает strpos.
0 - означает "найдено с нулевой позиции строки"
false - означает - не найдено.
Поэтому костыль в виде отступа и спас.
Кстати о отступах.
Неплохо было бы ствить отступы в коде.
Читать же невозможно.
Спустя 21 минута, 7 секунд (14.03.2011 - 14:03) Лена написал(а):
Цитата (dima4321 @ 14.03.2011 - 10:42) |
Твой пример не выводит ничего )) но вот так ===false ---он работает корректно. |
В первом посте вы неправильно объяснили, что вам нужно было, поэтому и запутали меня.
"Если слово не найдено - выводим его." - таким должно было быть ваше условие.
Спустя 50 минут, 45 секунд (14.03.2011 - 14:54) dima4321 написал(а):
Trianon
Да мой капитан ))
Тема усвоена !!
Отсутпы в будущем планириуются ).
Да мой капитан ))
Тема усвоена !!
Отсутпы в будущем планириуются ).
_____________
Работаю за еду ! __))
И за плюсики !