Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Badziej skomplikowane wyciąganie największego elementu z tablicy
gcwirko
post 8.12.2011, 11:24:26
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 12.09.2008

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


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
misty
post 8.12.2011, 13:11:40
Post #2





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


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
Go to the top of the page
+Quote Post
Micchaleq
post 8.12.2011, 13:28:30
Post #3





Grupa: Zarejestrowani
Postów: 186
Pomógł: 4
Dołączył: 13.10.2009

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


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" )

Ten post edytował Micchaleq 8.12.2011, 13:52:11


--------------------
Go to the top of the page
+Quote Post
darko
post 8.12.2011, 16:05:46
Post #4





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


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));


--------------------
Nie pomagam na pw, tylko forum.
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 Wersja Lo-Fi Aktualny czas: 25.07.2025 - 09:52