Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Sortowanie tablicy wielowymiarowej
radamastix
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 3.01.2010

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


Witam,

Mam problem i nie mogę znaleźć jego rozwiązania - wszystkie które znalazłem w internecie nie skutkują (IMG:style_emoticons/default/sad.gif)

Mam na przykład taką tablice:

$wynik = array(

0 => array (
'typ' => 'a',
'level' => 4,
'progres' => 34
),

1 => array (
'typ' => 'b',
'level' => 4,
'progres' => 60
),

2 => array (
'typ' => 'c',
'level' => 7,
'progres' => 55
));



Chciałbym aby tablica była sortowana według LEVEL malejąco, czego nie udaje mi sie zrobić funkcją array_multisort np. w taki sposób:

foreach ($wynik as $row) {
foreach ($row as $key => $value){
${$level}[] = $value; //Creates $volume, $edition, $name and $type arrays.
}
}



array_multisort($level, SORT_ASC, $wynik);


Chciałbym również aby takie same levele były sortowane w środku tabeli według ich progresu , czyli według mojego przykładu najpierw byłby level = 7 , a następnie level 4 z poziomem 60, a później level 4 z poziomem 34. Jednak nie wiem czy to jest możliwe do zrobienia tą funkcją sort, więc według mojego zamysłu chcę najpierw posortować według levela, a później to sortowanie po progresie zrobie już może jakos pętla i IFami. Jeżeli ktoś ma jakiekolwiek sugestie jak rozwiązać ten problem bardzo proszę o jakąkolwiek pomoc. Z góry wielkie wielkie dzięki (IMG:style_emoticons/default/smile.gif)

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


@up na ilość lecisz?

@autorze trzeba zacząć czytać ze zrozumieniem manual (IMG:style_emoticons/default/wink.gif)

  1. <?php
  2.  
  3. $wynik = array(
  4.  
  5. 0 => array(
  6. 'typ' => 'a',
  7. 'level' => 4,
  8. 'progres' => 34,
  9. ),
  10.  
  11. 1 => array(
  12. 'typ' => 'b',
  13. 'level' => 4,
  14. 'progres' => 60,
  15. ),
  16.  
  17. 2 => array(
  18. 'typ' => 'c',
  19. 'level' => 7,
  20. 'progres' => 55,
  21. ),
  22. );
  23.  
  24. $levels = [];
  25. $progress = [];
  26.  
  27. foreach ($wynik as $key => $value) {
  28. $levels[$key] = $value['level'];
  29. $progress[$key] = $value['progres'];
  30. }
  31.  
  32. var_dump($wynik);
  33. array_multisort($levels, SORT_DESC, $progress, SORT_DESC, $wynik);
  34. var_dump($wynik);
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: 14.10.2025 - 00:34