Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]zlicznie powtarzających się elementów w tablicy
Forum PHP.pl > Forum > Przedszkole
masttiv
Witam!
Nie wiem jak napisać program który pozwoli mi zliczać powtarzające sie elementy w tablicy.


  1. <?php
  2.  
  3. $odczyt[1] = "banan";
  4. $odczyt[2] = "banan";
  5. $odczyt[3] = "jabłko";
  6. $odczyt[4] = "pomarancza";
  7. $odczyt[5] = "banan";
  8. $odczyt[6] = "jabłko";
  9. $odczyt[7] = "banan";
  10. $odczyt[8] = "pomarancza";
  11. $odczyt[9] = "banan";
  12. $odczyt[10] = "pomarancza";
  13.  
  14. $owoce = array();
  15. $obliczenia = array();
  16.  
  17. $liczba_owocow_z_tego_rodzaju = 0;
  18.  
  19. foreach ($odczyt as $numer => $owoc) {
  20.  
  21. $owoce[$numer] = $owoc; // mam juz owoce w nowej tablicy
  22.  
  23. //wkladam owoce do nowej tablicy gdyz ostatecznie beda umieszczane w niej z pliku 
  24. //ale na razie chce wiedziec jak zliczyc ilosc powtarzających sie elementow
  25.  
  26.  
  27.  
  28. //wymyslilem cos takiego ale to raczej nie jest zbyt dobry pomysł:
  29.  
  30. if ($owoc == "banan"){
  31.  
  32. $liczba_owowcow_z_tego_rodzaju++;
  33.  
  34. $obliczenia[$owoc] = $liczba_owowcow_z_tego_rodzaju; 
  35.  
  36. }
  37.  
  38. }
  39.  
  40. echo "<br> Liczba bananow wynosi: " . $liczba_owowcow_z_tego_rodzaju;
  41.  
  42. //zlicza ale bede musial dla kazdego rodzaju pisac odzielne if'y a to nie o to chodzi...
  43.  
  44. ?>
siemakuba
Program? :) array_count_values" title="Zobacz w manualu PHP" target="_manual

pozdr.
masttiv
no dobra skrypt biggrin.gif

dalej nie wiem jak to zrobic...
b_chmura
  1. <?php
  2. //---[..]
  3. //---[..]
  4. ?>
masttiv
Dzieki, dziala
8_pasarzer_NOSTROMO
Witam
Mam nieco zbliżony problem.

Tablica :

  1. $odczyt = ("banan","jajko","mysz","oko","banan","szczur","dupa","mysz");
  2. $odczyt2 = array_count_values ($odczyt));
  3.  
  4. foreach ($odczyt2 as $key =>value){$test=$key;break}
  5.  
  6. print_r($test);


Wypluje mi najbardziej popularny element tablicy, ale tylko jeden. Co zrobić by wypluł dwa lub więcej, ale tylko te których jest najwięcej. Dla tego przykładu "banan" i "mysz" jest po 2x wiec powinien tyle te dwa wypluć.
nospor
Zrob sobie
print_r($odczyt2);
i przez chwile pomysl
8_pasarzer_NOSTROMO
@nospor
Wiedziałem, że zaraz wyskoczysz niczym Nauczyciele ze strajku przed zbliżającą się Majówką.
Zrobiłem jak piszesz, ale to daje mi tylko to, że układa wg. kolejności. Tablica jest tylko posortowana wg. kolejności.
A jak zostawić w tablicy tylko te z największą ilością powtórzeń ? Pozostałych chce się pozbyć.
nospor
Cytat
Zrobiłem jak piszesz,
No wlasnie zrobiles tylko polowe tego co napisalem. Moja sugestia skladala sie z dwoch czesci wink.gif
8_pasarzer_NOSTROMO
@nospor
Pomóż coś więcej, nasza rozmowa wygląda tak samo od 10 lat. Masz wiedzę i oszczędzasz niczym Jarosław na Min. Edukacji.
Dawaj 2 sugestie. Napisz co mam zrobić, bez kodu php.
nospor
Zebys choc polowe czasu poswiecal na pomyslunek jak poswiecasz na wymyslanie tych porownan....

Chcesz pobrac same najwieksze? No to najprostrza z mozliwych metod

- pobierasz wpierw wpiersza wartosc by wiedziec ile to jest to NAJWIECEJ. Jak pobrac pierwsza wartosc to juz wiesz, bo przeciez teraz to wlasnie robisz. Fakt, ze beznadziejnie, ale robisz
- majac najwieksza wartosc, lecisz ponownie po calej tablicy i wyswietlasz sobie tylko te elementy, ktore sa rowne najwiekszej wartosci.
kapslokk
Musisz znaleźć jaka jest największa ilość powtórzeń i przefiltrować tablicę.

max array_filter

Cytat
Zebys choc polowe czasu poswiecal na pomyslunek jak poswiecasz na wymyslanie tych porownan....

haha.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.