Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

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





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 27.11.2008

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


Witam mam taki kod

  1. <?php
  2. $wynik = dbquery("SELECT article_cat, article_subject, article_cat_name, article_id, article_cat_id FROM ".DB_ARTICLES." a LEFT JOIN ".DB_ARTICLE_CATS." c ON (a.article_cat=c.article_cat_id) WHERE ".groupaccess('article_cat_access')." AND a.article_draft='0'");
  3. if(dbrows($wynik) > 0) {      
  4. $kategorie = array();
  5. while($r = dbarray($wynik))    
  6. {
  7. if (!isset($kategorie[$r['article_cat_id']])){
  8. $kategorie[$r['article_cat_id']] = array(
  9. 'article_cat_id' => $r['article_cat_id'],
  10. 'article_cat_name' => $r['article_cat_name'],
  11. 'articles' => array());
  12. }
  13. if (!empty($r['article_id'])) {
  14. $kategorie[$r['article_cat_id']]['articles'][] = array(
  15. 'article_id' => $r['article_id'],
  16. 'article_subject'=>$r['article_subject'],
  17. 'article_id'=>$r['article_id'],
  18. 'article_cat'=>$r['article_cat']);
  19. }
  20. }
  21. }
  22. foreach ($kategorie AS $idCat => $category){
  23. $article_cat_name[$idCat]  = $category['article_cat_name'];
  24. echo "<div class='klik' id=".$category['article_cat_id']." style='text-align:left'>".THEME_BULLET." ".$category['article_cat_name']."</div>";  
  25. foreach ($category['articles'] AS $articles){
  26. echo "<div class=pokaz".$articles['article_cat']." style='text-align:left; margin-left:15px; display:none'>".THEME_BULLET." <a href='".BASEDIR."articles.php?article_id=".$articles['article_id']."'>".$articles['article_subject']."</a></div>";
  27. }
  28. }
  29. ?>


I dostaję taką tablice

Kod
<BR>Array ( [2] => Array ( [article_cat_id] => 2 [article_cat_name] => kategoria2 [articles] => Array ( [0] => Array ( [article_id] => 1 [article_subject] => artyluk nr 1 [article_cat] => 2 ) [1] => Array ( [article_id] => 2 [article_subject] => artykul nr 2 [article_cat] => 2 ) ) ) [1] => Array ( [article_cat_id] => 1 [article_cat_name] => kategoria1 [articles] => Array ( [0] => Array ( [article_id] => 3 [article_subject] => artykul nr 3 [article_cat] => 1 ) ) ) ) <script> $(document).ready(function(){ $("div.klik").click(function () { var id = $(this).attr("id"); $("div.pokaz" + id).toggle("slow"); }); }); </SCRIPT> <BR>


Jak za pomocą mogę array_multisort" title="Zobacz w manualu PHP" target="_manual posortować tablice po kluczu article_cat_name by nazwy kategorii było od a do z oraz po kluczu article_subject proszę po pomoc ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
planet
post
Post #2





Grupa: Zarejestrowani
Postów: 61
Pomógł: 6
Dołączył: 15.07.2009
Skąd: Śląsk->Ruda Śląska

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


A może spróbuj to posortować od razu w zapytaniu? pokombinuj z GROUP BY i ORDER BY
Go to the top of the page
+Quote Post
ayeo
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


Witam!

Staraj się formatować kod, który wklejasz. Przecież tam nic nie widać! Już nie wspominam nawet o dumpie tej tablicy (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Znacznie zwiększysz szanse, że ktoś poświęci czas na Twój problem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Pozdrawiam!
Go to the top of the page
+Quote Post
arzach
post
Post #4





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 27.11.2008

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


W zapytaniu nie da rady tego zrobić bo jak widać dane są zapisywane do tablicy jest to przykład z http://nospor.pl/grupowanie-wynikow-n35.html

Ten post edytował ayeo 25.07.2009, 18:46:01
Powód edycji: zmiana czcionki, link
Go to the top of the page
+Quote Post
potreb
post
Post #5





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Też korzystam z rozwiązania nospora i w zapytaniu można posortować tak jak chcesz.

Skoro tablice tworzysz w pętli to chyba sortowanie powinno działać.

Ten post edytował potreb 25.07.2009, 19:21:43
Go to the top of the page
+Quote Post

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: 3.10.2025 - 10:12