ugrás a tartalomhoz

Tömben előforduló elemek száma

Johnny · 2008. Már. 5. (Sze), 00.11
Sziasztok!

Van egy tömböm, ami ilyen adatokat tartalmaz:
  1. Array  
  2.         (  
  3.             [0] => 0-1  
  4.             [1] => 0-1-1  
  5.             [2] => 0-2  
  6.             [3] => 0-3  
  7.             [4] => 0-3-1  
  8.             [5] => 0-3-1-1  
  9.             [6] => 0-2-1  
  10.             [7] => 0-1-2  
  11.         )  
Meg kéne határoznom, hogy egy adott karakter sorozat hányszor fordul elő a tömb értékei között.
Pl: a 0-1* sorozat hány értéknél fordul elő. A fenti példában ezek az értékek a következők lennének:
  1. [0] => 0-1  
  2. [1] => 0-1-1  
  3. [7] => 0-1-2  
Hogyan tudnám ezt a lehető legegyszerűbben és leggyorsabban meghatározni?
 
1

regexp, ciklus

zila · 2008. Már. 5. (Sze), 08.51
1. Egy ciklusban végigszaladsz a tömbön és egy regexppel vizsgálod az egyezőséget és számolod a találatokat.
2. Ha csak a darabszám kell, és nem túl nagy a tömb, akkor a tömböt stringgé alakítod valamilyen elválasztó karakterrel és a kapott stringen csinálsz egy preg_match_all-t
3. array_walk függvénnyel mész végig a tömbön, regexppel számolsz
2

array_unique

DsA · 2008. Már. 6. (Cs), 09.15
array_unique ?
ennek átadod a tömböt ez is egy tömbel tér visza és arra meg nyomsz egy count-ot
ha erre gondolsz... de szntem igen
3

asd

bagoly000 · 2008. Már. 7. (P), 01.07
Szerintem:
  1. $tomb = array(0-1,0-1-1,0-2,0-3,0-3-1,0-3-1-1,0-2-1,0-1-2);  
  2. $kellene = 0-1;  
  3.   
  4. $elofordulas = 0;  
  5.   
  6. foreach( $tomb as $egy_elem ) {  
  7. //Minden egyes elemének végigjárása  
  8.   if( strstr( $egy_elem, $kellene ) ) {  
  9.     $elofordulas += 1; //Ha megtalálható, akkor változó értékének növelése.  
  10.   }  
  11. }  
  12.   
  13. echo "A \"".$kellene."\" adat ".$elofordulas." -szor található meg.";