Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как узнать принадлежит ли одна цифра к ряду цифр? 
V
    Опции темы
Igor_CH
Дата 14.12.2006, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 20.3.2005

Репутация: нет
Всего: нет



есть строка с набором цифр 50,30,52,63,64
и цифра 52

Как узнать принадлежит ли цифра 52  этой строке, если принадлежит то …. 

PM MAIL   Вверх
Mal Hack
Дата 14.12.2006, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Либо регулярками, либо in_array( 52 , explode(","$str) );
PM ICQ   Вверх
skyboy
Дата 14.12.2006, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Igor_CH, цифры - в массиве лежат? тогда in_array вызвать.
если просто строкой, то вроде такого:
Код

$bool= (strpos(','.$str.',',$searched) !== false); // $str == '50,30,52,63,64'; $searched == '52'

PM MAIL   Вверх
Igor_CH
Дата 14.12.2006, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 20.3.2005

Репутация: нет
Всего: нет



Спасибо, но что то не получаеться, что должно выводить $bool  ?
PM MAIL   Вверх
Igor_CH
Дата 14.12.2006, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 20.3.2005

Репутация: нет
Всего: нет



фигня какая то
делаю 
echo str;
получаю 50,30,52,63,64

делаю 
echo  $searched;
получаю 52

Дальше делаю
Код

$var1 = strpos("50,30,52,63,64","52");
echo var1;
получаю 6


Тутже делаю 
Код

$var = strpos("$str","$searched");
echo $var;
ничего не получаю :(

PM MAIL   Вверх
Mal Hack
Дата 14.12.2006, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Igor_CH, слабо в ман глянуть, какие параметры получает и что strpos возвращает?
PM ICQ   Вверх
skyboy
Дата 14.12.2006, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



недописал. пример должен быть такой:
Код

$bool= (strpos(','.$str.',',','.$searched.',') !== false); // $str == '50,30,52,63,64'; $searched == '52'

разделители надо добавить, иначе будут ложный срабатывания(strpos("11,12,13","1") вернёт "1", хотя единица в строку не входит, как отдельное число).
Цитата(Igor_CH)

Код

$var = strpos("$str","$searched");
echo $var;


если не будет найдена искомая строка, $var будет равно false. а false не выводится на экран при использовании echo/print.
PM MAIL   Вверх
Gold Dragon
Дата 14.12.2006, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



да куда проще то smile

Код

$a = "50,30,52,63,64";
$b = strpos($a, "52");

if ($b === false){
    echo "строки нет";
}else{
    echo "строка есть";
} 

хотя разговор шёл о цифрах, а это всё же строка... Но 
Код

$a = "50,30,52,63,64";
$aa = 52;
$b = strpos($a, $aa);

if ($b === false){
    echo "строки нет";
}else{
    echo "строка есть";
}
 
тоже отлично работает


Это сообщение отредактировал(а) Gold Dragon - 14.12.2006, 18:04


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
skyboy
Дата 14.12.2006, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Gold Dragon, поищи 2 в строке "23,12,42,62". Оно тебе 4 вхождения выдаст smile
PM MAIL   Вверх
Gold Dragon
Дата 14.12.2006, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



 smile 
не подумал  smile 

тогда нафиг всё это дело в массив... (я просто регами не умею пользоваться smile )


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Igor_CH
Дата 15.12.2006, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 20.3.2005

Репутация: нет
Всего: нет



Спасибо, все работает!
PM MAIL   Вверх
Igor_CH
Дата 15.12.2006, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 20.3.2005

Репутация: нет
Всего: нет



Поспешил я наверно поставить галочку что вопрос решен.
А может потому что не правильно задал вопрос.

Есть какие то цифры
52
30
60
….. их много

Каждая из них принадлежит какой то сроке (строк всего 5), мы выяснили как узнать принадлежность к строке.

А вот как вывести такое???:
Если цифра 52 и принадлежит строке то $name=”100”;
 
Т.е. получается есть строка 52,30,65,40 – у этих цифр $name=”100”;
А есть строка 50,35,90,150 – у этих цифр $name=”200”;
И т.д.
Цифры в строках не пересекаются, т.е. у каждой строки только свои цифры.

PM MAIL   Вверх
Vaulter
Дата 15.12.2006, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 6
Всего: 22



блин ну сколько мусолить то можно?
Код

function check($num)
{
  $ret = null;
  $params = array(100=> '52,30,65,40', 200=> '50,35,90,150');

  foreach($params as $n=> $str)
    if(strpos($str, $num))
      $ret = $n;

  return $ret;//or check if null and do something
}



--------------------
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0588 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.