Эхо-слова не найдены в сравнении строк

У меня есть переменная и массив (также может быть переменной), которые необходимо сравнить. Я знаю, как сравнивать две строки, но я не знаю, как вывести слова, которые не были найдены. Также слова, которые не были найдены, должны быть в переменной, чтобы я мог использовать их позже.

$mystring = array('Net 40', 'Net 44', 'Priv 40');
$findme   = 'Net 44';
if( strpos($mystring, $findme) !== false ) echo $findme." has been found in the string";

РЕДАКТИРОВАТЬ
Я перефразирую свой вопрос: как сравнить две переменные и вывести все слова, которые не были найдены.

0

Решение

Вы могли бы использовать array_diff чтобы найти слова, которые остаются после того, как вы успешно сопоставили слово с одним в списке:

$mystring = array('Net40', 'Net44', 'Priv40');
$findme   = 'Net44';

echo "<br>list of words before: " . implode(",", $mystring);

$mystring = array_diff($mystring, array($findme));

echo "<br>list of words after: " . implode(",", $mystring);

Выход:

список слов перед: Net40, Net44, Priv40
список слов после: Net40, Priv40

1

Другие решения

strpos проверить, что ваш второй параметр находится в первом параметре?
например

strpos («Это», «есть»)

это проверяет, находится ли is в строке или нет. Если вы хотите проверить результат в массиве или нет, пожалуйста, сделайте следующее

if(in_array($findme,mystring)) echo $findme." has been found in the string";
0

Во-первых, вы не должны использовать strpos с массивом и строкой.

Вы можете сделать что-то вроде этого:

$mystring = array('Net 40', 'Net 44', 'Priv 40');
$findme   = 'Net 44';

$size = count($mystring)
$notFound = array();

for($i = 0; $i < $size; $i++)
{
if($mystring[$i] === $findme)
{
echo $findme." has been found in the string (actually array)";
}
else
{
array_push($notFound, $mystring[$i]);
}
}

Если mystring фактически является строкой, этот код должен выглядеть немного иначе. Я пошел с тем, что вы предоставили.

0

Решение с массивами. Если у вас есть строки, вы можете преобразовать их в массив с взрываться функция.

 <?php
$mystring = array('Net40', 'Net44', 'Priv40');
$findme   = array('Net44');
$result=array_diff($mystring,$findme);

//$result is an array of elements that was in $mystring but not in $findme
print_r($result);
?>
0

Не был найден немного двусмысленно, просто будьте осторожны:

<?php

$haystack = array('Net40', 'Net44', 'Priv40');
$needles  = array('Net44', 'NetBsd');

var_dump(array_diff($haystack, $needles));
var_dump(array_diff($needles, $haystack));
var_dump(array_intersect($haystack, $needles));

Выход:

array (size=2)
0 => string 'Net40' (length=5)
2 => string 'Priv40' (length=6)

array (size=1)
1 => string 'NetBsd' (length=6)

array (size=1)
1 => string 'Net44' (length=5)
0
По вопросам рекламы [email protected]