01. november 2005 - 19:57
Der er
24 kommentarer og 1 løsning
returnere true hvis en af værdierne i arrayet er i variablen
Hej Eksperter! Jeg har brug for en funktion som kan returnere true hvis man kan finde en eller flere værdier fra et array i en variable... altså: $array = array("hej","med","dig"); $variable1 = "mig og dig er altid blah bla..."; = true $variable2 = "sort er solen"; = false ? :)
Annonceindlæg fra inspirit365
01. november 2005 - 19:57
#1
... og en vigtig ting, sige hvilken key i arrayet som er rigtig :)
01. november 2005 - 19:58
#2
er rigtig = passer med variablen
01. november 2005 - 20:04
#3
array_search kan kun hvis teksten passer præcist med værdien i arrayet... min tekst kan godt have noget både før og efter værdien i arrayet?
01. november 2005 - 20:07
#4
F.eks.: function ($variable) { $array = array("hej","med","dig"); foreach ($array as $ord) { if (stripos($variable, $ord) !== false) return true; } return false; }
01. november 2005 - 20:07
#5
<ole> Du kan bruge in_array - men det er ikke så effektivt. Har du mulighed for at lave dit array sådan: $array = array("hej"=>"hej", "med"=>"med", "dig"=>"dig"); - da det vil give dig mulighed for at lave noget betydeligt bedre performende /mvh </bole>
01. november 2005 - 20:10
#6
- og hvor lang kan din variable være ... hvor mange ord? nielle >> alm. for-løkker er hurtigere end foreach-løkker :)
01. november 2005 - 20:11
#7
det er værdien for $_SERVER["HTTP_USER_AGENT"] som skal bruges... jeg vil gerne vide om der er søgemaskiner i den
01. november 2005 - 20:13
#9
- så ville jeg nok bruge nielle's - blot med en alm. for-løkke: function ($variable) { $array = array("hej","med","dig"); for ($i=0; $i<count($array); $i++) { if (stripos($variable, $array[$i]) !== false) return true; } return false; }
01. november 2005 - 20:14
#10
så skal den kunne returnere hvilken af søgemaskinerne der måske er i $_SERVER["HTTP_USER_AGENT"]-variablen
01. november 2005 - 20:14
#11
Var selv ved at lave noget tilsvarende :^) function ($variable) { $array = array("hej","med","dig"); for ($idx=0; $idx<count($array); $idx++) { $ord = $array[$idx]; if (stripos($variable, $ord) !== false) return true; } return false; }
01. november 2005 - 20:15
#12
function ($variable) { $array = array("hej","med","dig"); for ($i=0; $i<count($array); $i++) { if (stripos($variable, $array[$i]) !== false) return $array[$i]; } return false; }
01. november 2005 - 20:15
#13
Eventuelt kan du bruge strpos() i stedet for stripos() da den også performer bedre. Jeg var dog ikke helt sikker på om du ville have en case-insensitic søgning eller ej.
01. november 2005 - 20:19
#14
ved ikke om case har nogen betydning? kan de finde på at omdøbe deres trawlere?
01. november 2005 - 20:22
#15
Det kan vi jo altså ikke rigtigt garantere dig noget om :^)
01. november 2005 - 20:23
#16
hehe men hvilken er hvad?
01. november 2005 - 20:25
#17
hvilken er hvad - hvad?
01. november 2005 - 20:29
#18
Er det returneringen, du spørger om ... så kik på (01/11-2005 20:15:10) :)
01. november 2005 - 20:32
#19
nej hvilken er ligeglad med casen?
01. november 2005 - 20:41
#20
strpos() er casesensitiv og stripos() er caseINsensitiv. Det lille 'i' i funktionsnavnet står for "ignore case".
01. november 2005 - 20:41
#21
STRing-caseInsensitive-POSition -> stripos ;o)
01. november 2005 - 20:45
#22
det er så smart det hele - så snart man lige forstår logikken i funktionsnavngivningen! Med smider i nogen svar så vi kan komme vider? :^P
01. november 2005 - 20:45
#23
Forresten nielle: Hvis du selv er i gang med noget lignende - har du så flere søgerobotters navne jeg kan låne? :)
01. november 2005 - 20:54
#24
Nej sådan noget er jeg nu ikke i gang med. ... og et svar :^)
01. november 2005 - 21:01
#25
- jeg hopper elegant over denne gang ... men takker for tanken ;o)
Vi tilbyder markedets bedste kurser inden for webudvikling