AlecTBM Skrevet 19. august 2006 Del Skrevet 19. august 2006 Jeg har en liste med navn og bursdag og sånt. Denne listen er i array. Jeg har også laget en tabell der alt er skrevet opp ved hjelp av en løkke. Problemet mitt oppstår nå jeg nå har fått veldig mange i denne listen. Så jeg har tenkt å kunne søke etter personer og/eller vise dem i alfabetisk rekkefølge. Jeg har nå fått til å søke etter navn HVIS jeg skriver navnet rett. Hvis jeg søker etter alex så får jeg opp ikke noe, men hvis jeg skriver Alex så får jeg opp Alex. Jeg har lyst til at man bare trenger å søke på alex for å få opp Alex. Eller få alle som har en a i seg eller starter med a når man søker på a. Noen som vet om en metode? jeg bruker nå array_search() Lenke til kommentar
kjey Skrevet 19. august 2006 Del Skrevet 19. august 2006 (endret) Angående søkeproblemet ditt med stor og liten bokstav bruker du funksjonen strtolower(). Denne funksjonen gjør at alle bokstavene i en gitt tekststreng blir gjort om til små bokstaver. Noe lignende dette kan du jo gjøre: <?php if(strtolower($innskrevet_navn) = strtolower($navn_i_tabell[$i])) { echo $navn_i_tabell[$i]; } ?> Altså denne if-setningen kan du legge inn i søke-løkka di. Da vil denne setningen sjekke om navnet som ligger i tabellen stemmer overens med søkeordet. Og til sorteringsproblemet ditt, PHP manualen er din venn (som alle vet ): http://no.php.net/manual/en/function.sort.php Hvis du får problemer, så si ifra, og gjerne legg ut litt kode Endret 19. august 2006 av kjey Lenke til kommentar
AlecTBM Skrevet 19. august 2006 Forfatter Del Skrevet 19. august 2006 Hmm Det var bare halve svaret på spørsmålet. Med den så går det jo ikke ann å søke på f.eks a så kommer Alex opp. Eller hva? Ska se nærmere på det i morra. Lenke til kommentar
kjey Skrevet 19. august 2006 Del Skrevet 19. august 2006 (endret) Beklager, glemte det problemet Du kan gjøre det på denne måten hvis du vil: <?php $array = array("Arne", "Bjarne", "Arnie"); foreach($array as $element) { if(strpos(strtolower($element), strtolower($bokstav)) === 0) { echo $element . "<br />"; } } ?> Endret 19. august 2006 av kjey Lenke til kommentar
AlecTBM Skrevet 20. august 2006 Forfatter Del Skrevet 20. august 2006 Disse funka delvis. Hvis jeg søkte på a så kom opp Arne og Arnie. Men hvis jeg søkte på e så kom ingen opp. Hvordan gjør jeg det? PS. Hva var forskjellen på de to kodene? Lenke til kommentar
AlecTBM Skrevet 20. august 2006 Forfatter Del Skrevet 20. august 2006 Fikk det til nå. Brukte preg_match() Lenke til kommentar
kjey Skrevet 20. august 2006 Del Skrevet 20. august 2006 Hmmm... vet ikke om det var forskjellen på de to kodene du skjønte så jeg skriver en kort forklaring. Koden nedenfor er koden for søk med hele navn. Den gjør om alle bokstavene til små bokstaver slik at man slipper å tenke på det når man søker. if(strtolower($innskrevet_navn) = strtolower($navn_i_tabell[$i])) { echo $navn_i_tabell[$i]; } Den andre koden sjekker om bokstaven (f.eks. "A") brukeren har skrevet inn er den første bokstaven i et eller flere av navnene i tabellen. Grunnen til at det sjekkes om det er lik 0 er fordi bokstavindekseringen er lik som indeksering i tabeller ("nullbasert"). $array = array("Arne", "Bjarne", "Arnie"); foreach($array as $element) { if(strpos(strtolower($element), strtolower($bokstav)) === 0) { echo $element . "<br />"; } } Du har sikkert allerede forstått det, men jeg skrev dette for å være på den sikre siden Lenke til kommentar
AlecTBM Skrevet 20. august 2006 Forfatter Del Skrevet 20. august 2006 Forsto de to kodene nå, men de fungerte på samme måte hos meg. Men nå har jeg jo fått det til da Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå