Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: [PHP] Pilkulla eroteltujen sanojen käsittely

combo [07.10.2011 20:02:43]

#

Jos minulla on muuttujassa $hedelmät eroteltu pilkulla hedelmiä, miten voisin ehtolauseella tarkistaa että onko jokin hedelmä esimerkiksi banaani?

Vähän tyhmä kysymys, mutta...

<?php

$hedelmät = "mansikka, sitruuna, banaani, mustikka";

?>

Chiman [07.10.2011 20:09:55]

#

Jaa ", "-väleistä taulukoksi: https://www.php.net/manual/en/function.explode.php
Katso onko taulukossa: https://www.php.net/manual/en/function.in-array.php

temu92 [07.10.2011 20:10:34]

#

Tuommoisella koodilla antamasi lista toimisi mutta mieluiten listan sanojen erottimien (pilkku) ja itse sanojen väliin ei laiteta välilyöntejä.

<?php
$list = "mansikka, sitruuna, banaani, mustikka";
$fruits = explode(",", $list);

foreach($fruits as $fruit){
	if(trim($fruit) == "banaani"){
		echo "Löydettiin banaani!";
	}
}

tsuriga [07.10.2011 21:05:56]

#

str(i)pos(" {$list},", " {$fruit},")

EDIT: Tuunattu ;)

Metabolix [07.10.2011 21:25:41]

#

tsurigan ratkaisu löytää myös sanat "ruuna" ja "i". Tekstien alkuihin voisi siis lisätä vielä välilyönnit. Itse käyttäisin toteutukseen jälleen säännöllisiä lausekkeita, koska kohta kuitenkin joku haluaa tuen myös välilyönnillisille sanoille ja pilkutukselle ilman välejä.

qeijo [08.10.2011 10:25:42]

#

Lähtökohta on väärä, turha etsiä siihen huonoa ratkaisua. Sitten kun tulee poikkeuksia niin mikään ei toimi. Miksi et vaihda kaikki tiedot suoraan taulukkoon? Ei niitä nyt niin paljon voi olla että se ei kannattaisi.?

<?php
$hedelmat = array("mansikka", "sitruuna", "banaani", "mustikka"); //jne..

if(in_array("mansikka", $hedelmat)) {
// Jotain
}

?>

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta