Tha_Zaynt Skrevet 18. september 2005 Del Skrevet 18. september 2005 Topic sier vel det meste, men spørsmålet er altså; hvordan finner jeg ut hvor mange f.eks C'er som finnes i et array? Lenke til kommentar
???????? Skrevet 18. september 2005 Del Skrevet 18. september 2005 Tja... du var ikke villig til å utdype mye. Dersom du kun leter etter deler av en array som kun inneholder C så bruker du bare array_count_values() Lenke til kommentar
Tha_Zaynt Skrevet 18. september 2005 Forfatter Del Skrevet 18. september 2005 Jeg leter etter hvor mange ganger bokstaven C forekommer i et array Lenke til kommentar
???????? Skrevet 18. september 2005 Del Skrevet 18. september 2005 (endret) Hva mener du? At du har en array med flere stringer, og så ønsker du å søke gjennom alle stringene for å telle det totale antallet ganger bokstaven C forekommer i stringene? I så fall er en løsning å bruke array_map() Endret 18. september 2005 av ???????? Lenke til kommentar
Tha_Zaynt Skrevet 18. september 2005 Forfatter Del Skrevet 18. september 2005 jeg prøvde å teste array_count_values, men får feilmeldingen: Warning: array_count_values(): The argument should be an array in /mnt/home4/l/lu/luffert/public_html/plassering/plassering.php on line 13 <?php $innhold = file('plassering.txt'); foreach ($innhold as $linje){ $finn = array_count_values($linje); print_r($finn); } ?> Lenke til kommentar
Torbjørn Skrevet 18. september 2005 Del Skrevet 18. september 2005 funksjonen skal ha en array, men du gir den en streng, $linje Lenke til kommentar
???????? Skrevet 18. september 2005 Del Skrevet 18. september 2005 Det betyr at du må kjøre den på $innhold, og ikke på hver linje. Denne funksjonen vil da ikke telle antall bokstaver C i hver string. Lenke til kommentar
stiber Skrevet 19. september 2005 Del Skrevet 19. september 2005 Hvis du vil telle hvor mange ganger et tegn er brukt i en streng, så er dette en måte å gjøre det på. <?php $tekst = "Dette er en test"; $result = count_chars($tekst,1); print $result[ord('t')]; //output blir 4 ?> Lenke til kommentar
Tha_Zaynt Skrevet 20. september 2005 Forfatter Del Skrevet 20. september 2005 stiber skrev: Hvis du vil telle hvor mange ganger et tegn er brukt i en streng, så er dette en måte å gjøre det på. <?php $tekst = "Dette er en test"; $result = count_chars($tekst,1); print $result[ord('t')]; //output blir 4 ?> funka bra den snutten der ja, men jeg lurer på en ting til. Når jeg har funnet ut hvor mange C'er det er i strengen, f.eks 10stk vil jeg bytte ut C'ene med tall fra en til 10. den første C'en blir 1, den andre blir 2, den tredje blir 3 osv. Jeg vet at jeg kan bruke str_rplace, men ikke helt hvordan jeg skal gjennomføre det. Forslag? Lenke til kommentar
stiber Skrevet 20. september 2005 Del Skrevet 20. september 2005 Her er to forskjellige løsninger. Den første er basert på forrige kodesnutt, og den andre har en litt annen innfallsvinkel. Den siste er den mest effektive av de to, spesielt på lengre tekster. <?php $tekst = "Dette er en test"; $result = count_chars($tekst,1); for($i=1; $i < $result[ord('t')]+1; $i++) { $tekst = preg_replace('/t/',$i,$tekst,1); } print $tekst; //Eller: $tekst = "Dette er en test"; print preg_replace_callback('/t/','replacer',$tekst); function replacer($match) { static $i = 1; return $i++; } //Output fra begge to blir: "De12e er en 3es4" ?> Lenke til kommentar
Tha_Zaynt Skrevet 20. september 2005 Forfatter Del Skrevet 20. september 2005 stiber skrev: Her er to forskjellige løsninger. Den første er basert på forrige kodesnutt, og den andre har en litt annen innfallsvinkel. Den siste er den mest effektive av de to, spesielt på lengre tekster. <?php $tekst = "Dette er en test"; $result = count_chars($tekst,1); for($i=1; $i < $result[ord('t')]+1; $i++) { $tekst = preg_replace('/t/',$i,$tekst,1); } print $tekst; //Eller: $tekst = "Dette er en test"; print preg_replace_callback('/t/','replacer',$tekst); function replacer($match) { static $i = 1; return $i++; } //Output fra begge to blir: "De12e er en 3es4" ?> Den siste gjorde jobben, men outputten fra txt fila jeg henter info fra ser ikke helt bra ut. Det er helt sikkert fordi eg har brukt mye whitespace og linjeskift, hvordan kan jeg få skriptet til å ta hensyn til dette? Lenke til kommentar
Peter Skrevet 20. september 2005 Del Skrevet 20. september 2005 (endret) Uten at jeg har testet dette: $tekst = TEXT_MED_MANGE_DOBBEL_TRIPPEL_ELLER_FLER_SPACE_ETTER_HVERANDRE; $count = 1; while($count != 0) { $tekst = str_replace(" ", " ", $tekst, $count); } Dette denne gjør er å lete etter dobbel space (første parameter), erstatte dobbel spacen med enkel space (andre parameter) i variabelen $tekst (tredje parameter) og legge antall erstatninger gjort i $count (fjerde variabel). Denne vil kjøre helt til det ikke er flere dobbel space igjen ($count == 0) Sikkert noen som har en bedre/penere løsning, men tror ihverfall denne funker også. EDIT: err, la akkurat merke til at siste parameter ($count) ble lagt til i php 5.0.0 Dersom du ikke har dette, kan du muligens bruke denne i stedet while(strpos($tekst, " ") { $tekst = str_replace(" ", " ", $tekst) } Endret 20. september 2005 av Nazgul Lenke til kommentar
Tha_Zaynt Skrevet 20. september 2005 Forfatter Del Skrevet 20. september 2005 fikk fikset linebreakproblemet med nl2br(), men problemet nå er at whitespacen fortsatt ikke blir tatt hensyn til. Bare se her: Slik skal det se ut Slik ser det ut Lenke til kommentar
Peter Skrevet 20. september 2005 Del Skrevet 20. september 2005 Prøv med i stedet for vanlig space. Ser ut som fonten er en annen også, men burde ihvertfall hjelpe der hvor det ser ut som all "space" er borte. Lenke til kommentar
Tha_Zaynt Skrevet 20. september 2005 Forfatter Del Skrevet 20. september 2005 Nazgul skrev: Prøv med i stedet for vanlig space.Ser ut som fonten er en annen også, men burde ihvertfall hjelpe der hvor det ser ut som all "space" er borte. prøvde me  , men funka ikke særlig. Dessuten ble kildekoden Fu**ed Lenke til kommentar
stiber Skrevet 20. september 2005 Del Skrevet 20. september 2005 Omslutt ascii tabellen din med <pre></pre> tagger. Da får du automatisk monospace font, du bevarer whitespace og html koden innenfor blir fortsatt tatt hånd om av browser. Da trenger ikke å bruke nl2br eller Lenke til kommentar
Tha_Zaynt Skrevet 20. september 2005 Forfatter Del Skrevet 20. september 2005 fungerte perfekt. Takk for hjelpen. 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å