Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Filtrowanie tablicy.
Yuri20
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 13.07.2010

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


Otóż mam taki skrypcik, który ma filtrować tablicę tak, aby za każdym razem zwracała najwyższy wynik, ale za każdym przebiegiem pętli ma wyłączać z filtorwania wynik, który ostatnio był najwyższy.

  1. $byly = array();
  2. $top=0;$topKlucz;
  3. for($i=0;$i<count($staty);$i++){
  4. foreach($staty as $klucz=>$wartosc){
  5. if(!in_array($klucz, $byly))
  6. if($wartosc['ekonomia'] > $top){
  7. $top = $wartosc['ekonomia'];
  8. $topKlucz = $klucz;
  9.  
  10. }
  11. }
  12. $byly[] = $topKlucz;
  13. }


Niestety powyższy skrypt za każdy razem zwraca ten sam wynik jako najwyższy (3 razy, ponieważ pętla for przebiega 3 razy).
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
maniana
post
Post #2





Grupa: Zarejestrowani
Postów: 207
Pomógł: 44
Dołączył: 18.05.2007

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


Nie wiem czy dobrze zrozumiałem, chcesz wyświetlić X tam największych liczb? Jeśli tak to wystarczy:
  1. $staty = array(25,0,2,43,6,82,31,73,12);
  2. sort($staty);
  3. print_r(array_slice($staty, 0, 3));
A jeśli w pętli to:
  1. $staty = array(25,0,2,43,6,82,31,73,12);
  2.  
  3. $max = array();
  4. for($i=0;$i<count($staty);$i++){
  5. $top = 0;
  6. foreach($staty as $klucz=>$wartosc){
  7. if($wartosc > $top){
  8. $top = $wartosc;
  9. $topKlucz = $klucz;
  10. }
  11. }
  12. echo $top.'<br />';
  13. $max[$topKlucz] = $top;
  14. unset($staty[$topKlucz]);
  15. }
  16. print_r($max);

Zauważ, że w swoim kodzie operujesz na danych które przetwarzasz i cały czas sprawdzasz czy liczby nie są większe od znalezionej największej liczby w pierwszym przejściu pętli. $top zawsze będzie największa bo jej nie zerujesz przed dalszym wyszukiwaniem.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 15.10.2025 - 07:00