Търсене на много елементи в масив

d_badboy

Registered
Имам масив $tekstove и друг масив $dumi. Как да изведа само тези елементи от масива $tekstove, в които се намира 1 или повече елемента на масива $dumi и да удебели намереното ?
ПП: Предполагам с preg_grep нещо но незнам как точно.
 
<?php
$array = array("1","2","3","4","5","1","3","4"); // масива със стойностите
$repeat = array_count_values($array); // тук ги преброяваш
foreach ($repeat AS $key => $value) : // прекарваш ги през масива
if ($value > 1) : // и ако има повтарящи
echo $key." => ".$value."<br />"; // ги визуализираш
endif;
endforeach;
?>
 
Ето примерен код искам да ми удебели намерените думи и да покаже само тези елементи в който ги има. Това как да го оправя и как могат да се запазят главните букви ?
 
Еми в изходния код променяш следния код:

Код:
echo $key." => "<b>.$value.</b>"<br />"; // ги визуализираш

Смятам, че така ще стане.
И още нещо - усещам, че искаш да правиш тагове. Ако е така и искаш колкото повече се повтаря думата толкова по-голяма да е тя трябва от изхода на кода, който ти е дал replace да изведеш още един масив и на базата брой повторения в него задаваш дали ще е h3, h2 или h1.
 
Нещо такова?
Код:
<?php
$array = array(
    "Dan Balan - Justify Sex", "Dj Robert Georgescu ft Lara - Be Side You",
    "Deepcentral - In Love", "Dj Stephano & Dj Adrianno ft. Adda - Colors",
    "David Guetta & Chris Willis Feat. Fergie & LMFAO - Gettin Over You",
    "David Guetta - Memories (ft Kid Cudi)", "Dj Rynno and Phelipe-Le le le",
    "David Guetta Feat. Akon - Sexy Bitch", "DJ Project feat. Giulia - Nu",
    "Deepcentral - Music Makes Me Free", "Dj Andy feat. Stella - Freedom",
    "dJ LayLa ft AlisSa - SinGLe Lady", "DJ Sequenza - Rhythm Of Love",
    "Dj Sava & Raluka - I Like (The Trumpet)",
);

$search = array("david", "guetta");

foreach ($array as $val)
{
    $res = preg_replace('/('.implode("|", $search).')/i', '<b>$1</b>', $val, -1, $count);
    if ($count)
    {
        echo $res."<br />\n";
    }
}
?>
 
Работи безпроблемно, но изникна още нещо. Как ще стане да изкара песните в които се съдържат всички търсени думи че не съм наясно с регулярните изрази много ? В момента и трите думи се намират в 1 песен а ми показва 4 елемента от масива :lol:
 
Май се досетих но искам да разбера има ли AND, т.е. обратното на |
Код:
$count_s = count($search);
echo $search_count;

foreach ($array as $val) {
    $res = preg_replace('/('.implode("|", $search).')/i', '<b>$1</b>', $val, -1, $count);
    if ($count==$count_s) $show.= $res."<br />";
}
 

Back
Горе