Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]zlicznie powtarzających się elementów w tablicy
masttiv
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 7.12.2006

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
siemakuba
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


Program? :) array_count_values" title="Zobacz w manualu PHP" target="_manual

pozdr.
Go to the top of the page
+Quote Post
masttiv
post
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 7.12.2006

Ostrzeżenie: (0%)
-----


no dobra skrypt biggrin.gif

dalej nie wiem jak to zrobic...

Ten post edytował masttiv 23.05.2007, 14:29:11
Go to the top of the page
+Quote Post
b_chmura
post
Post #4





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

Ostrzeżenie: (0%)
-----


  1. <?php
  2. //---[..]
  3. //---[..]
  4. ?>
Go to the top of the page
+Quote Post
masttiv
post
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 7.12.2006

Ostrzeżenie: (0%)
-----


Dzieki, dziala
Go to the top of the page
+Quote Post
8_pasarzer_NOSTR...
post
Post #6





Grupa: Zarejestrowani
Postów: 109
Pomógł: 0
Dołączył: 5.11.2009

Ostrzeżenie: (0%)
-----


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ć.
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Zrob sobie
print_r($odczyt2);
i przez chwile pomysl


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
8_pasarzer_NOSTR...
post
Post #8





Grupa: Zarejestrowani
Postów: 109
Pomógł: 0
Dołączył: 5.11.2009

Ostrzeżenie: (0%)
-----


@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ć.
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Zrobiłem jak piszesz,
No wlasnie zrobiles tylko polowe tego co napisalem. Moja sugestia skladala sie z dwoch czesci wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
8_pasarzer_NOSTR...
post
Post #10





Grupa: Zarejestrowani
Postów: 109
Pomógł: 0
Dołączył: 5.11.2009

Ostrzeżenie: (0%)
-----


@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.

Ten post edytował 8_pasarzer_NOSTROMO 26.04.2019, 10:53:57
Go to the top of the page
+Quote Post
nospor
post
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kapslokk
post
Post #12





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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

Ten post edytował kapslokk 26.04.2019, 11:09:37
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 02:03