EOMY.NET
на главную
EOMY.NET
Хостинг EOMY.NET: Форум поддержки
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   <b>Лотерея</b>Лотерея   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

RSS Feed

Сравнение строк

 
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Программирование для WEB
Сравнение строк
Автор Сообщение
madhamster
$a ||= 5;
$a ||= 5;


Зарегистрирован: 09.10.2006
Сообщения: 728

32371 Монеты

СообщениеДобавлено: Чт, 14 Дек, 2006 15:09    Заголовок сообщения: Сравнение строк Ответить с цитатой

Нужно сравнить две строки к примеру:

Код:

$word = "andrew";
$string = "atrnmdesw";


Задача такая, если в строке $string содержатся все символы что и в $word вернуть true, иначе false...

Звучит просто но я никак не могу подобрать нужной функции... c preg_match_all() не прокатило...

Мож у кого получится...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Gimli
Хостинг — это наше всё!
Хостинг — это наше всё!


Зарегистрирован: 30.07.2006
Сообщения: 115

6116 Монеты

СообщениеДобавлено: Чт, 14 Дек, 2006 16:21    Заголовок сообщения: Ответить с цитатой

разделяй строку на символы и проверяй...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
fbd
Интернет на завтрак
Интернет на завтрак


Зарегистрирован: 28.12.2006
Сообщения: 46

1607 Монеты

СообщениеДобавлено: Ср, 10 Янв, 2007 15:57    Заголовок сообщения: Ответить с цитатой

Кол-во здесь не учитывается. Т.е. если в $word какой-то символ несколько раз встречается, а в $string меньшее кол-во раз, то все равно будет работать ). Php 5 у меня нет, но по идее должно работать.
Код:
<?
$word = "andrew";
$string = "atrnmdesw";

// PHP 5
  if ($word == array_intersect(str_split($word), str_split($string)))
    echo 'true';
  else
    echo 'false';

// PHP 4
  $i = 0;
  $ok = true;
  for($i = 0; $i < strlen($word); $i++)
    if (strpos($string, $word[$i]) === false)
    {
      $ok = false;
      break;
    }
  var_dump($ok);
?>

А еще я тут подумал, и не решил как строку в массив символов в PHP 4 преобразовать. Т.е. в php 5 это str_split() как раз.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Wink
$a ||= 5;
$a ||= 5;


Зарегистрирован: 08.08.2006
Сообщения: 899
Откуда: Россия, Омск
113191 Монеты

СообщениеДобавлено: Ср, 10 Янв, 2007 17:27    Заголовок сообщения: Ответить с цитатой

Надо было тему назвать "Сравнение стрингов" Very Happy
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Дедушка Стри
Хостинг — это наше всё!
Хостинг — это наше всё!


Зарегистрирован: 16.10.2006
Сообщения: 170
Откуда: Украина, Луганск
4122 Монеты

СообщениеДобавлено: Ср, 10 Янв, 2007 18:34    Заголовок сообщения: Ответить с цитатой

Wink писал(а):
"Сравнение стрингов"

Не-е... а то у некоторых плохо воспитанных пользеров возникнет пошлая ассоциация. Как у мну Laughing
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
madhamster
$a ||= 5;
$a ||= 5;


Зарегистрирован: 09.10.2006
Сообщения: 728

32371 Монеты

СообщениеДобавлено: Ср, 10 Янв, 2007 22:12    Заголовок сообщения: Ответить с цитатой

Wink писал(а):
Надо было тему назвать "Сравнение стрингов" Very Happy


ГЫЫЫ. Я хотел но постеснялся Smile

fbd а вот тут я чтото не понял... Ты сравниваешь строку с массивом? Ведь array_intersec возвращает массив...

Код:

if ($word == array_intersect(str_split($word), str_split($string)))
    echo 'true';
  else
    echo 'false';


Тут нада обьединить элементы массива в строку функцией implode

Код:

<?
$word = "andrew";
$string = "atrnmdesw";
if ($word == implode("", array_intersect(str_split($word), str_split($string))))
    echo 'true';
  else
    echo 'false';
?>


Вот теперь работает отлично! Спсибо за идею, игра висилица спасена Very Happy
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
KAIN
Интернет на завтрак
Интернет на завтрак


Зарегистрирован: 26.12.2006
Сообщения: 46

1829 Монеты

СообщениеДобавлено: Чт, 11 Янв, 2007 05:18    Заголовок сообщения: Ответить с цитатой

Прошу прощения за тупость, но обьясните мне почему не канает такой метод? или может я вопрос не прально понял.
Код:

<?php

if($stribg == $word) {echo "Внатуре (TRUE)";}
else {echo "не, нифига (FALSE)";}

?>

?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
larstas
Интернет на завтрак
Интернет на завтрак


Зарегистрирован: 09.12.2006
Сообщения: 88
Откуда: Украина, Луганск
4422 Монеты

СообщениеДобавлено: Чт, 11 Янв, 2007 05:28    Заголовок сообщения: Ответить с цитатой

KAIN
то, что написал ты дает тру, если обе переменные равны. А человеку нужно проверить содержатся ли все те же символы в одной переменной, что и в другой.
Причем они судя по всему могут повторяться!
Поэтому такой метод и не канает.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
fbd
Интернет на завтрак
Интернет на завтрак


Зарегистрирован: 28.12.2006
Сообщения: 46

1607 Монеты

СообщениеДобавлено: Чт, 11 Янв, 2007 11:53    Заголовок сообщения: Ответить с цитатой

madhamster
ну или надо, чтоб слева было str_split($word)
)
Вообще очевидно, что строка это массив символов, может быть им нужно было перегрузить == для того, чтобы массив можно было сравнивать со строкой? А символ конца строки бы не считался.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
madhamster
$a ||= 5;
$a ||= 5;


Зарегистрирован: 09.10.2006
Сообщения: 728

32371 Монеты

СообщениеДобавлено: Чт, 11 Янв, 2007 12:02    Заголовок сообщения: Ответить с цитатой

Да larstas ты правильно понял
_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
KAIN
Интернет на завтрак
Интернет на завтрак


Зарегистрирован: 26.12.2006
Сообщения: 46

1829 Монеты

СообщениеДобавлено: Чт, 11 Янв, 2007 13:23    Заголовок сообщения: Ответить с цитатой

ну тогда нужно ставить задачу корректнее, и уточнять что символы могут идти в разнобой.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Программирование для WEB Часовой пояс: GMT
Страница 1 из 1

 


EOMY TOP 100 Rambler's Top100   Рейтинг@Mail.ru    



Powered by phpBB © 2001, 2005 phpBB Group






Рейтинг SIMPLETOP.NET