Avatar billede razmuz_dk Nybegynder
19. juni 2004 - 21:31 Der er 3 kommentarer og
1 løsning

Hvor mange gange findes $needle i $haystack?

Findes der en PHP der fortæller hvor mange gange nålen findes i høstakken? Altså hvor mange gange en vis karakter findes i en streng.

antalgangeistreng("høstak","nål"); // skal returnere 0
antalgangeistreng("1-2-3","-"); // skal returnere 2
antalgangeistreng("rødgrødmedfløde","ø"); // skal returnere 3

Håber i kan se hvad jeg spørger om :-)

Alternativet er self. at man selv laver en funktion der undersøger hver enkel karakter... men er det virkelig nødvendigt? :)

på forhånd tak,
- Rasmus
Avatar billede dennismp Nybegynder
19. juni 2004 - 21:33 #1
substr_count('1-2-3','-'); .. osv
Avatar billede razmuz_dk Nybegynder
19. juni 2004 - 21:34 #2
Fandt dette på php.net:

This function will return the number of times a needle is found in a haystack...if none that it will return 0.

Cheers to lgbr for saving me the headache! :P
<?php
/**
* @return int
* @param string $haystack
* @param string $needle
* @desc returns the number of times a needle is found in a haystack, 0 if none found
*/
function totalStr($haystack, $needle,$i = 0)
{
  while(strpos($haystack,$needle) !== false) {
      $haystack = substr($haystack, (strpos($haystack,$needle) + 1));
      $i++;
  }
  return $i;
}
?>

... dvs. der findes ingen "rigtig" funktion der kan gøre det?
Avatar billede razmuz_dk Nybegynder
19. juni 2004 - 21:35 #3
Ups.. så dig ik lige ... tak skal du have :-)
Avatar billede fangel Nybegynder
20. juni 2004 - 11:02 #4
rasmus -> ellers kan du også bruge den optionale $offset parameter til at komme der hen af...

$haystack = 'jeg - er - en - lille - høstak';
$needle = '-':
$offset = 0; // disse to er der kun for at undgå notices...
$count = 0;
while(($offset = str_pos($haystack, $needle, $offset)) !== FALSE) $count++;

men funktionen der er lavet til det er selvfølgelig klogere...

Morten
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester