mehrdimensionales Array sortieren

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
djchrisnet
Mitglied
Beiträge: 1275
Registriert: 29.06.2007 15:52
Wohnort: Elmshorn
Kontaktdaten:

mehrdimensionales Array sortieren

Beitrag von djchrisnet »

ich habe folgendes array dass dynamisch generiert wird und nun sortiert werden muss.

es handelt sich um eine Statistik, wer die meisten Dinge pro Jahr erhalten hat.
Hier erstmal ein Beispiel array:

Code: Alles auswählen

Array
(
    [2009] => Array
        (
            [192] => Array
                (
                    [angels] => 2
                    [rank] => false
                    [uid] => 192
                    [user] => User1
                    [posts] => 0
                )
            [134] => Array
                (
                    [angels] => 3
                    [rank] => false
                    [uid] => 134
                    [user] => User2
                    [posts] => 1
                )
            [202] => Array
                (
                    [angels] => 1
                    [rank] => false
                    [uid] => 202
                    [user] => User3
                    [posts] => 0
                )
            [45] => Array
                (
                    [angels] => 2
                    [rank] => false
                    [uid] => 45
                    [user] => User4
                    [posts] => 0
                )
        )
)
nun soll nach dem key "angels" sortiert werden. asort,arsort, ksort, krsort sind mir ein begriff. jedoch fehlts an der anwendung.

Danke für jeden helfenden Gedanken schonmal im vorraus
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Re: mehrdimensionales Array sortieren

Beitrag von mad-manne »

djchrisnet hat geschrieben:ich habe folgendes array dass dynamisch generiert wird und nun sortiert werden muss.
.. / ..
Danke für jeden helfenden Gedanken schonmal im vorraus
Ich bin beileibe kein Experte im Sortieren derartiger Arrays ... aber wieso versuchst du nicht das Pferd von vorne(siehe oben) aufzuzäumen?
Ergo, bereits beim dynamischen "Generieren" ... die Datenbankabfragen(vermutlich) so gestalten, dass du beim Zusammenbauen des Arrays bereits die gewünschte Ordnung zur Verfügung hast?!

My 2 cents,
Manne.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
Benutzeravatar
djchrisnet
Mitglied
Beiträge: 1275
Registriert: 29.06.2007 15:52
Wohnort: Elmshorn
Kontaktdaten:

Re: mehrdimensionales Array sortieren

Beitrag von djchrisnet »

die anzahl ist leider nicht in der datenbank und auch nicht über ein COUNT() zu kriegen.
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Re: mehrdimensionales Array sortieren

Beitrag von mad-manne »

Wie wäre es hiermit ?? array-multisort.php
Habe das allerdings auch noch nie selbst genutzt :roll:

Gruss,
Manne.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
Benutzeravatar
djchrisnet
Mitglied
Beiträge: 1275
Registriert: 29.06.2007 15:52
Wohnort: Elmshorn
Kontaktdaten:

Re: mehrdimensionales Array sortieren

Beitrag von djchrisnet »

Thema ist erledigt. Lösung gefunden. dennoch danke an alle
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5395
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Re: mehrdimensionales Array sortieren

Beitrag von oxpus »

djchrisnet hat geschrieben:Thema ist erledigt. Lösung gefunden. dennoch danke an alle
Und wie heisst die Lösung in deinem Fall?
Hat denn "array_multisort" weitergeholfen?

Vielleicht möchten andere User auch hierzu lernen ;)
Grüße
OXPUS
Kein Support bei unaufgeforderten PNs, E-Mails oder auf anderem Weg!!
Benutzeravatar
djchrisnet
Mitglied
Beiträge: 1275
Registriert: 29.06.2007 15:52
Wohnort: Elmshorn
Kontaktdaten:

Re: mehrdimensionales Array sortieren

Beitrag von djchrisnet »

es ging dann am ende doch über die DB mit einem COUNT(), musste jedoch dafür die Struktur komplett umbauen.

mit array_multisort() ist das meiner meinung nach nicht möglich, hatte ich gestern aber auch eingehend getestet.

aber mal was anderes. wieso funktioniert den <!-- IF .loopname --> nicht mehr?

Beispiel:

Code: Alles auswählen

<!-- IF .loop -->
<tr>
   <td><!-- BEGIN loop -->{loog.data}<!-- END loop --></td>
</tr>
<!-- ENDIF -->
Vorteil währe dass keine leere zeile in der tabelle erstellt wird. die ersten 10 zeilen werden darüber bereits erstellt(mit einem anderen loop), ab der 11.ten soll alles restliche in eine zeile. aber so erstellt er eine leere zeile in der tabelle wenn es für zeile 11 keine daten gibt.

vll hat da jemand ne idee, <!-- BEGINELSE --> hilft jedenfalls dort nicht.

thx <3
4seven
Mitglied
Beiträge: 5869
Registriert: 21.04.2007 06:18

Re: mehrdimensionales Array sortieren

Beitrag von 4seven »

dafür ist jetzt dieses konstrukt zuständig

Code: Alles auswählen

foreach ($some_array as $row)
{
    $template->assign_block_vars('block_name', array(
        'EXAMPLE'        => $row['beispiel'],
        'DEMO'            => $row['demonstration'],
    ));
} 
qualle: http://wiki.phpbb.com/Deutsch:Vorlage_f ... ene_Seiten

im template dann (zb)

Code: Alles auswählen

    <!-- BEGIN block_name -->
    <tr class="<!-- IF block_name.S_ROW_COUNT is even -->bg1<!-- ELSE -->bg2<!-- ENDIF -->">
        <td>{block_name.EXAMPLE}</td>
        <td>{block_name.DEMO}</td>
    </tr>
    <!-- END block_name --> 
funktioniert hervorragendst

foreach ($some_array as $row)
kann dann natürlich auch while, sort-konstrukte oder ähnliches sein.
halt alles was wie-auch-immer-geartete array-behandlung ist.
Benutzeravatar
djchrisnet
Mitglied
Beiträge: 1275
Registriert: 29.06.2007 15:52
Wohnort: Elmshorn
Kontaktdaten:

Re: mehrdimensionales Array sortieren

Beitrag von djchrisnet »

ne, ich meinte etwas anderes.

Ich suche eine möglichkeit ausserhalb vom loop selbst zu prüfen, ob der loop überhaupt exisitiert.

<!-- IF loopname --> ist dauerhaft true
und <!-- IF .loopname --> ist dauerhaft false

was die sache nicht einfacher macht, ist die tatsache, dass es sich um unterloop handelt, also wie folgt:

Code: Alles auswählen

<!-- BEGIN loop -->some html
<!-- BEGIN subloop1 -->some html<!-- END subloop1 -->
some html
<!-- BEGIN subloop2 -->some html<!-- END subloop2 -->
some html<!-- END loop -->
4seven
Mitglied
Beiträge: 5869
Registriert: 21.04.2007 06:18

Re: mehrdimensionales Array sortieren

Beitrag von 4seven »

denke einfach um :wink:

Code: Alles auswählen

<!-- BEGIN block_name -->
some html
<!-- IF block_name.IRGENDWAS_1 -->some html <!-- ENDIF -->
some html
<!-- IF block_name.IRGENDWAS_2 -->some html<!-- ENDIF -->
some html
<!-- END block_name -->  
Antworten

Zurück zu „Coding & Technik“