webForumDet fria alternativet

"in_array" ger tomt resultat

PHPur PHP

2 svar · 394 visningar · startad av Guldstrand

GuldstrandMedlem sedan juli 20041 271 inlägg
#1

Är det jag som tänker helt fel här, eller varför får jag ett tomt resultat, fast att jag vet att det finns minst 3 produkter med ordet "säsong"?

$namn = utf8_decode($record["TITLE"]);
$namn = strtolower($namn);
$sokord = array("säsong", "julkalender");

if (in_array($namn, $sokord)) {
print("$namn<br />");
}

Exempel $namn:

solsidan - säsong 1 (3 disc)

jmeMedlem sedan maj 20012 237 inlägg
#2

in_array letar efter exakta match. om du har "säsong" i arrayn så kommer den inte att hitta "säsong xyz"

GuldstrandMedlem sedan juli 20041 271 inlägg
#3

jme skrev:

in_array letar efter exakta match. om du har "säsong" i arrayn så kommer den inte att hitta "säsong xyz"

Ok! Var lite det jag misstänkte.
Men hur gör jag då? :r

EDIT:
Löste det med en liten funtion som jag hittade på php.net.

function strpos_arr($haystack, $needle) {
    if(!is_array($needle)) $needle = array($needle);
    foreach($needle as $what) {
        if(($pos = strpos($haystack, $what))!==false) return $pos;
    }
    return false;
}
125 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)