Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Badziej skomplikowane wyciąganie największego elementu z tablicy
Forum PHP.pl > Forum > PHP
gcwirko
Witam! Potrzebuję pomocy, męczę się z tym od kilku dni. Mam np tablicę

a[0][0]=136; a[0][1]=200;

a[1][0]=136; a[1][1]=201;

a[2][0]=136; a[2][1]=202;

a[3][0]=137; a[3][1]=158;

a[4][0]=137; a[4][1]=175;

a[5][0]=137; a[5][1]=145;

Potrzebuję wyciągnąć z tej tablicy wiersz a[2] oraz a[4] czyli największą wartość a[x][1] przy jednakowej wartości a[x][0].
Z góry dziękuję za pomoc.
misty
czy Tobie chodzi o to, by znalezc najwiekszy element? Jesli tak to wystarczy petla w petli (wpierw po 1szym wymiarze, potem po 2gim). Kazda wartosc przypisujesz do zmiennej $tmp ale tylko wtedy jesli jest wieksza od swojej poprzedniczki. Po wyjsciu z obu petl, w zmiennej $tmp masz najwieksza wartosc.

pzdr
Micchaleq
Jeżeli chcesz wyciągać z konkretnych parametrów to :
nie koniecznie musisz potrzebować 2-pętli lub
zapisuj te ( pierwsze indeksy ) w jakiejś tabeli i wtedy przeszukasz tylko te które są zawarte w tabeli.


pierwszy sposób :
  1. $tmp = 0;
  2. for($i=0;$i<count($a[2]);$i++)
  3. {
  4. if($tmp < $a[2][$i]) $tmp = $a[2][$i];
  5. }


drugi :
  1. $ktore = array(2, 4);
  2. $tmp = array();
  3.  
  4. for($j=0;$j<count($ktore);$j++){
  5. $tmp[$j] = 0;
  6. for($i=0;$i<count($a[$ktore[$j]]);$i++)
  7. {
  8. if($tmp[$j] < $a[$ktore[$j]][$i]) $tmp[$j] = $a[$ktore[$j]][$i];
  9. }
  10. }


PS: w przypadku kiedy masz liczby ujemne to deklarujesz początkową wartość tmp pierwszej cyfrze z danego wiersza. ( czyli w if ie dodajes "or $i == 0" )
darko
max i unset już nie wystarczą? Zobacz jak można wyciągnąć maksimum
  1. $arr = array();
  2. $arr[0][1] = 155;
  3. $arr[0][0] = 53;
  4. $arr[1][0] = 6653;
  5. $arr[1][1] = 543555;
  6.  
  7. var_dump(max($arr));
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.