Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
1 / 1 / 0
Регистрация: 08.09.2009
Сообщений: 202

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

21.09.2016, 14:45. Показов 1378. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Одна строка разбивается на массив слов. Как сделать, чтобы вторая строка проверялась на наличие всех слов из массива?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.09.2016, 14:45
Ответы с готовыми решениями:

Обработка слов строки без массива слов
В программе нужно обработать введенную строку , ввести некоторую разменость и вывести слова , рамерность которых больше за введенную . ...

Сравнивание элементов строки
Доброго времени суток. Помогите решить задачу. Требуется в строку 3 записать из строки 1 и 2 символы ,которые встречаются один раз как в...

Сравнивание char строки с текстом
Программа определяет какое событие произошло раньше а какое позже(вводится с экрана, к примеру 2012 April 21). В программе не сравнивает...

10
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
21.09.2016, 14:49
Что-то вроде этого:
PHP
1
2
3
4
5
6
7
8
9
$arr = ['мама', 'мыла', 'раму'];
$str2 = 'Маман мыл раму вечером';
$str3 = explode(" ", $str2);
foreach($str3 as $v){
  if(in_array($v, $arr)){
    $arr1[] = $v;
  }
}
print_r($arr1);
Сравнить две строки
0
1 / 1 / 0
Регистрация: 08.09.2009
Сообщений: 202
21.09.2016, 14:54  [ТС]
вышел такой результат
Array ( [0] => Маман [1] => мыл [2] => раму [3] => вечером )
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
21.09.2016, 14:56
PHP
1
2
3
4
5
6
7
8
9
$arr = ['мама', 'мыла', 'раму'];
$str2 = 'Маман мыл раму вечером';
$str3 = explode(" ", $str2);
foreach($str3 as $v){
  if(in_array($v, $arr)){
    $arr1[] = $v;
  }
}
print_r($arr1);
Результат:
Code
1
2
3
4
Array
(
    [0] => раму
)
0
1 / 1 / 0
Регистрация: 08.09.2009
Сообщений: 202
21.09.2016, 14:56  [ТС]
а мне нужно, чтобы если в строке есть все слова из массива, то выполнение действий
0
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
21.09.2016, 14:56
Лучший ответ Сообщение было отмечено vi100k как решение

Решение

PHP
1
2
3
4
5
6
7
$arr = ['мама', 'мыла', 'раму'];
$str2 = 'Маман мыл раму вечером';
$c = explode(' ',$str2);
$_ = array_intersect($arr,$c);
if(count($_) == count($c)){
    echo 1;
}else echo 'Не все слова';
0
1 / 1 / 0
Регистрация: 08.09.2009
Сообщений: 202
21.09.2016, 14:58  [ТС]
Azdeman, о, отлично, спасибо! дальше допилю сам)
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
21.09.2016, 14:59
Цитата Сообщение от vi100k Посмотреть сообщение
а мне нужно, чтобы если в строке есть все слова из массива, то выполнение действий
так добавьте условие
PHP
1
2
3
if(count($arr1) == count($arr)){
  //действие
}
0
1 / 1 / 0
Регистрация: 08.09.2009
Сообщений: 202
21.09.2016, 15:31  [ТС]
мне не нужно, чтобы совпадало количество в них. Выше мне уже подсказали верный вариант

Добавлено через 28 минут
блин, не подходит, он сравнивает точные совпадения. а как сделать, что бы:

строка: мама мыла раму
массив ['ма', 'мыл', 'аму']
каждый элемент массива есть в каждом слове строки и это TRUE,

а строка: мама мыла раму
массив ['ма', 'мыл', 'гам']
FALSE, потому что "гам" нет ни в одном слове строки

Добавлено через 1 минуту
проверять вхождения в каждом слове на предмет каждого элемента?
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
21.09.2016, 17:23
Лучший ответ Сообщение было отмечено vi100k как решение

Решение

Так?
PHP
1
2
3
4
5
6
7
8
9
$arr = ['ма', 'гыл', 'аму'];
$str2 = 'Маман мыл раму';
$i = 0;
foreach($arr as $v){
  if(mb_stristr($str2, $v)){
    $i++;
  }
}
echo ($i == count($arr)) ? 'Есть все подстроки' : 'Есть не все подстроки';
0
1 / 1 / 0
Регистрация: 08.09.2009
Сообщений: 202
21.09.2016, 17:26  [ТС]
Пифагор, thanks!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.09.2016, 17:26
Помогаю со студенческими работами здесь

Сравнивание элементов массива с введенным числом
Почему при сравнивании числа с элементами массива выводится что число составное, даже если оно равно элементу массива? #include...

Сравнивание элементов динамического массива с числом
Приветы! Есть код: #include "stdafx.h" #include "stdio.h" int main() { int q, w; printf("Vvedite razmer Q:...

Сравнивание элементов символьного массива через указатели
Недавно стал разбираться с указателями. int ComAlph(char *str1, char *str2) { char b, a; if(strlen(str1)!=strlen(str2)) ...

Сравнивание двумерного символьного динамического массива со словом
Здравствуйте! Пожалуйста, помогите разобраться в этом условии: if (dictionary]==*word) count++; Здесь dictionary - двумерный символьный...

Сравнивание пустую Edit1 з заполненой Edit1 && также сравнивание з файлов з разных форм
Как сравнить пустую Edit1 з заполненой Edit1?? и ещо вопрос есть 2 формы как сравнить строку з первой(загруженою з файла) формы з строкой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru