|
|
|
| Есть две строки которые нужно сравнить между собой на наличие всех слов содержащихся во второй строке, и если слова присутствуют, то осуществляем вывод...
Делаем из обоих строк массивы:
$a = "И днем и нечью кот ученый";
$exp_a = explode(" ", $a);
( получаем массив Array ( [0] => И [1] => днем [2] => и [3] => ночью [4] => кот [5] => ученый )
$ b = "нечью ученый днем";
$exp_b= explode(" ", $b);
( получаем массив Array ( [0] => ночью [1] => ученый [2] => днем )
А как сравнить эти массивы и если слова из второго массива присутствуют в первом сделать вывод.... | |
|
|
|
|
|
|
|
для: romza
(13.01.2006 в 14:19)
| | Ну не уж то ни у кого не возникло такой задачи??? | |
|
|
|
|
|
|
|
для: romza
(13.01.2006 в 14:19)
| | Лобовой вариант:
<?
$a = "И днем и нечью кот ученый";
$exp_a = explode(" ", $a);
$ b = "нечью ученый днем";
$exp_b= explode(" ", $b);
$test=true;
foreach ($exp_b as $val)
{
if (!in_array($val, $exp_a))
$test=false;
}
if ($test) echo "все искомые слова присутствуют в первой строке";
|
| |
|
|
|
|
|
|
|
для: Loki
(13.01.2006 в 15:29)
| | А где у меня ошибка???
$a=$_GET["a"];
$arr=$arr["s"]["k"];
while (list($k, $v) = each ($arr))
{
$exp_v = explode(" ", $v["e"]); //
$exp_a = explode(" ", $a);
$simile=true;
foreach ($exp_a as $val)
{
if (!in_array($val, $exp_v))
$simile=false;
}
if ($simile) echo
'<div>'.($k+1).'<a href="'.$v["h"].'" target="_blank"><b>'.$v["e"].'</b></a></div>';
}
|
| |
|
|
|
|
|
|
|
для: romza
(13.01.2006 в 16:15)
| | Может и у меня ошибка - мне протестировать не на чем:)
Я просто сам алгоритм привел. | |
|
|
|
|
|
|
|
для: Loki
(13.01.2006 в 17:15)
| | Мож кто проверит еще... | |
|
|
|
|
|
|
|
для: romza
(13.01.2006 в 17:27)
| | Сейчас запустил свой код - абсолютно рабочий. Так что проверяйте что за данные вы ему скармливаете. | |
|
|
|
|
|
|
|
для: romza
(13.01.2006 в 14:19)
| |
<?php
$a = "И днем и нечью кот ученый";
$exp_a = explode(" ", $a);
$exp_a[] = null;
$b = "нечью ученый днем";
$exp_b = explode(" ", $b);
$exp_b = array_pad ($exp_b, count($exp_a), null);
if(count(array_diff($exp_b, $exp_a)) === 0) {
echo "ok";
}
?>
|
| |
|
|
|
|
|
|
|
для: isset
(13.01.2006 в 18:12)
| | Огромное Вам спасибо!!! Буду разбирать и анализировать пример.... | |
|
|
|
|
|
|
|
для: romza
(16.01.2006 в 10:05)
| | Появился вопрос... а как я могу получить числовое значение общего колличества совпавших строк???
И еще одно ... есть зависимость от регистра.... которую можно обойти воспользовавшись функцией strtr( ) | |
|
|
|