Minulla on seuraavanlainen taulukko:
<?php $array = array("tietokone", "näyttö"); ?>
Nyt pitäisi saada selville, löytyykö tuosta $array
muuttujan taulukosta
esim. "kone" sanaa. (Tässä tapauksessa löytyy.)
Antakaas vinkkejä kuinka tuollainen haku onnistuisi :)
Yksi ratkaisu on käydä taulukko läpi ja tutkia joka sanan kohdalla, sisältääkö se hakusanan.
Kiitos paljon! ;)
PHP tarjoaa lähes kaikkeen valmiin funktion, myös tähän: array_search() :)
Täsmennyksenä edelliseen: array_search-funkkaria voidaan käyttää siis silloin kun halutaan etsiä täydellistä avainta. Tässä kuitenkin haetaan merkkijonoa myös merkkijonojen sisältä, jolloin oma vertailu on tarpeen. Substr_countin
tilalla lienee tässä tilanteessa kuitenkin parempi käyttää str(i)posia
. Ellei sitten sanan useammat esiintymiskerrat samassa taulukon indeksissä lasketa kaikki erikseen.
tsuriga kirjoitti:
Täsmennyksenä edelliseen: array_search-funkkaria voidaan käyttää siis silloin kun halutaan etsiä täydellistä avainta. Tässä kuitenkin haetaan merkkijonoa myös merkkijonojen sisältä, jolloin oma vertailu on tarpeen.
Ah, totta. Mitä lie mielessäni liikkunut, kun en tuota tajunnut :)
Tässä vielä vaihtoehtoinen ratkaisu ilman silmukoita:
<?php $sanat = array("tietokone", "näyttö"); $haku = "kone"; $ehto = create_function("\$sana", "return substr_count(\$sana, \"$haku\");"); $tulos = array_filter($sanat, $ehto); if (count($tulos) == 0) { echo "Ei löytynyt!<br>"; } else { echo "Löytyi: " . join("<br>Löytyi: ", $tulos) . "<br>"; } ?>
(Käytän funktiota substr_count, jotta ei tarvitse huolehtia muuttujatyypeistä.)
Aihe on jo aika vanha, joten et voi enää vastata siihen.