14. januar 2005 - 11:30
Der er
9 kommentarer og 1 løsning
in array
$forbidden = array("banan", "kirsebær", "vandmelon"); if (in_array("vandmelon", $forbidden)) { vandmelon forbudt } Det fungerer som det skal. Men kan jeg også tjekke på en substring i array'et, f.eks: $forbidden = array("banan", "kirsebær", "vandmelon"); if (in_array("melon", $forbidden)) { melon er en del af vandmelon og er dermed forbudt } Kan det lade sig gøre?
Annonceindlæg fra Genetec
14. januar 2005 - 11:37
#1
1. <? $forbidden = array("banan", "kirsebær", "vandmelon"); if (in_array("vandmelon", $forbidden)) { echo "vandmelon er forbudt"; } ?> virker da fint. Mht. nr. 2 , så måske med en regex, men er ikke sikker på at de virker på arrays.
14. januar 2005 - 11:47
#2
løsning på spm 2 (taget fra kommentarene på php.net) <?php $forbidden = array("banan", "kirsebær", "vandmelon"); function array_search_bit($search, $array_in) { foreach ($array_in as $key => $value) { if (strpos($value, $search) !== FALSE) return $key; } return FALSE; } if(array_search_bit("melon", $forbidden)) { echo "melon er forbudt"; } ?>
14. januar 2005 - 11:57
#3
Det virker ikke lige umiddelbart.
Roder lige med det, ifølge første kommentar her:
http://dk.php.net/in_array
14. januar 2005 - 11:57
#4
huh ? begge stykker kode virker fint på min pc.
14. januar 2005 - 12:15
#5
Ja, det gør det også som det står der. MEN, hvis man ændrer array'et til dette: $forbidden = array("bananmelon", "kirsebær", "vandmelon"); Og altså lader det forbudte ord indgå to gange, så fejler tjekket - prøv selv...
14. januar 2005 - 13:06
#6
Jeg kan ikke få det til at fungere ordentligt, så indtil videre er jeg gået tilbage til en almindelig in_array. Afventer lige og ser om der dukker en løsning op.
14. januar 2005 - 13:41
#7
hvis du ændre scriptet lidt: <? $forbidden = array("bananmelon","kirsebær", "vandmelon"); function array_search_bit($search, $array_in) { foreach ($array_in as $key => $value) { if (strpos($value, $search) !== FALSE) return true; } return false; } if(array_search_bit("melon", $forbidden)) { echo "melon er forbudt"; } ?> så virker det fint. før retunerede det en key, nu retunere det bare true/false.
17. januar 2005 - 08:37
#8
Ja, det dur :) Smid et svar...
09. august 2005 - 12:01
#10
Lukket
Vi tilbyder markedets bedste kurser inden for webudvikling