php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
Alt 02.08.2004, 02:11  
Gast
 
Beiträge: n/a
Standard [Erledigt] array sortieren

moin

bin schon über die bücher gegangen aber nix gefunden was mir hilft

hab mysql db, beispielsweise:

id | zahl1 | zahl2
---------------------------
1 10 5
2 5 10
3 9 3


jetzt kann ich das ja ganz normal ausgeben, entweder order by zahl1 , zahl2 etc ...
das mach ich ne tabelle aber mit ner 4. zelle und zwar zahl1/zahl2 (gibt also n durchschnitt...)

jetzt würd ich gern wissen wie ichs dann ausgeben kann das es nach durchschnitt ordnet... hm wieder schlecht beschrieben

also id 1 hat durchschnitt 2
id 2 durchschnitt 0.5
id 3 durchschnitt 3

jetzt solls die ganzen datensätze geordnet nach durchschnitt ausgeben, wie könnt ich das anstellen

in mysql kann ich ja noch nich ordnen ORDER BY zahl1/zahl2 DESC oder?

hm

und in n array machen is glaub auch nich ganz so einfach, denn insgesamt sinds nich nur 3 felder wie hier (id, zahl1, zahl2) sondern um die 15 ...
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 02.08.2004, 07:42  
Gast
 
Beiträge: n/a
Standard

hi marco,

wenn ich dich richtig verstanden habe, willst du nach dem durchschnitt von zahl1 und zahl2 ordnen/ausgeben.
am einfachsten wäre es doch in die datenbanktabelle ein feld für den durchschnitt hinzuzufügen.
bei der ausgabe kannst du dann mit ORDER BY 'durchschnitt' arbeiten.

ciao, madonnari
 
Alt 02.08.2004, 08:26  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 642
kid01 befindet sich auf einem aufstrebenden Ast
kid01 eine Nachricht über Skype™ schicken
Standard

array_multisort sollte dir weiterhelfen!

Damit kannst du dein array sotieren ohne die db-Abfrage zu ändern.
kid01 ist offline  
Alt 02.08.2004, 09:06  
Erfahrener Benutzer
 
Registriert seit: 30.06.2004
Beiträge: 619
tapferesschneiderlein
Standard

Mal davon abgesehen, daß Du mit zahl1/zahl2 nicht den Durchschnitt bekommst, kannst Du die Felder gleich bei der Abfrage hinzufügen und danach sortieren lassen:
Code:
SELECT `id`, 
       `zahl1`, 
       `zahl2`, 
       `zahl1`/`zahl2` AS "a/b", 
       (`zahl1`+`zahl2`)/2 AS "Durchschnitt" 
       FROM `tabelle`
       ORDER BY "Durchschnitt"
Nachträglich geht's dann mit array_multisort():
Code:
foreach ($fetched_array AS $key => $val)
    $sort_key[$key] = $val['Durchschnitt'];
    
array_multisort($sort_key, $fetched_array);
tapferesschneiderlein ist offline  
Alt 02.08.2004, 12:26  
Gast
 
Beiträge: n/a
Standard

hehe jau vielen dank taferesschneiderlein.

joa falsch formuliert, es wird nich der durchschnitt zwischen den beiden zahlen sondern es wird durchschnittlich XX pro XX

also eines z.b. is tore das ander e spiele
und dann im schnitt X.XX tore pro spiel
 
Alt 11.05.2009, 18:40  
Neuer Benutzer
 
Registriert seit: 11.05.2009
Beiträge: 20
Hans_James befindet sich auf einem aufstrebenden Ast
Standard

Hallo Leute,

mein problem ist ein mehrdimensionale array. Ich will es nach ein Key(odering) sotieren.
Das Array ist so aufgebaut:
Code:
Array
(
    [Main] => Array
        (
            [User Menü] => Array
                (
                    [Profile] => Array
                        (
                            [1] => /projekt/profile.php
                        )

                )

            [Archiv] => Array
                (
                    [3] => /projekt/ladepapiere/archiv/index.php
                )

            [Ladepapiere] => Array
                (
                    [2] => /projekt/ladepapiere/index.php
                )

            [Dummy End] => Array
                (
                    [4] => /projekt/start3.php
                )

        )

    [EDV] => Array
        (
            [Benutzer] => Array
                (
                    [Benutzer anlegen] => Array
                        (
                            [1] => /projekt/edv/usercreate.php
                        )

                    [Benutzer bearbeiten] => Array
                        (
                            [2] => /projekt/edv/userupdate.php
                        )

                )

            [Gruppe] => Array
                (
                    [Gruppe bearbeiten] => Array
                        (
                            [2] => /projekt/edv/groupupdate.php
                        )

                    [Gruppe anlegen] => Array
                        (
                            [1] => /projekt/edv/groupcreat.php
                        )

                )

            [Startseite] => Array
                (
                    [1] => /projekt/edv/index.php
                )

            [Programme einfügen] => Array
                (
                    [4] => /projekt/edv/programcreate.php
                )

        )

    [Admin] => Array
        (
            [Startseite] => Array
                (
                    [1] => /projekt/admin/index.php
                )

            [Verlauf löschen] => Array
                (
                    [2] => /projekt/admin/session_loeschen.php
                )

        )

    [Start] => Array
        (
            [2] => /projekt/start2.php
        )

)
Ich will das die Nummer in der richtige reihenfolge mit ihren werten dargestellt werden.

z.b. an dieser stelle:
Code:
[Gruppe] => Array
                (
                    [Gruppe bearbeiten] => Array
                        (
                            [2] => /projekt/edv/groupupdate.php
                        )

                    [Gruppe anlegen] => Array
                        (
                            [1] => /projekt/edv/groupcreat.php
                        )

                )
so soll es aussehen nach sotieren:
Code:
[Gruppe] => Array
                (
                    [Gruppe bearbeiten] => Array
                        (
                            [1] => /projekt/edv/groupupdate.php
                        )

                    [Gruppe anlegen] => Array
                        (
                            [2] => /projekt/edv/groupcreat.php
                        )

                )
die nummern sind so gewählt das die, die reihenfolge angeben.

Kann mir einer helfen dieses Array zu sotieren ???

Gruss

Hans
Hans_James ist offline  
Alt 11.05.2009, 20:27  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Na dann, fang mal an!

uksort und Rekursion.

Mein Tipp ist aber, dass sowas beim Erstellen des Arrays immer einfacher zu haben ist.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 12.05.2009, 09:44  
Neuer Benutzer
 
Registriert seit: 11.05.2009
Beiträge: 20
Hans_James befindet sich auf einem aufstrebenden Ast
Standard

Nikosch danke für schnelle antwort.


Habe die Funktion angeschaut und ausprobiert.
ich glaube das ich mein problem nicht richtig erklärt haben. Ich will nicht nur die key sondern auch mit ihren inhalt. Habe oben nur die key vertauscht. d.h

Das array ist ein mehr mehrdimensionale assosiatives array. In dieser array können key in unterschiedlicher Ebene vorkommen.
Ich will als erstes Das array nach "godering" sotieren und danach eodering und am ende noch odering.

godering sind Menüpunkte z.B Main
edering sind unter menüpunkte z.B User Menü
odering sind die Elemente z.B Profile

habe jetzt mit einer funtion aus der seite von dir ein halb sotiertes array das es nach odering sotiert.
das sieht jetzt so aus:

siehe ein beitrag tiefer

Geändert von Hans_James (12.05.2009 um 11:59 Uhr).
Hans_James ist offline  
Alt 12.05.2009, 11:52  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Ja, das ist möglich, weil Du die Sortierlogik dort selbst vergibst. Ich verstehe allerdings nicht, warum es den Key "Gruppe" jetzt doppelt geben soll.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 12.05.2009, 11:59  
Neuer Benutzer
 
Registriert seit: 11.05.2009
Beiträge: 20
Hans_James befindet sich auf einem aufstrebenden Ast
Standard

Code:
Array
(
    [3] => Array
        (
            [16] => Array
                (
                    [10] => Array
                        (
                            [10] => Array
                                (
                                    [3] => Array
                                        (
                                            [menu_id] => 10
                                            [p_id] => 10
                                            [menu_name] => Benutzer anlegen
                                            [odering] => 1
                                            [pfad] => /projekt/edv/usercreate.php
                                            [parent] => 16
                                            [emenu_id] => 16
                                            [ename_menu] => Benutzer
                                            [eparent] => 3
                                            [eodering] => 2
                                            [gmenu_id] => 3
                                            [gmenu_name] => EDV
                                            [gparent] => 0
                                            [godering] => 3
                                        )

                                )

                        )

                    [18] => Array
                        (
                            [22] => Array
                                (
                                    [3] => Array
                                        (
                                            [menu_id] => 18
                                            [p_id] => 22
                                            [menu_name] => Benutzer bearbeiten
                                            [odering] => 2
                                            [pfad] => /projekt/edv/userupdate.php
                                            [parent] => 16
                                            [emenu_id] => 16
                                            [ename_menu] => Benutzer
                                            [eparent] => 3
                                            [eodering] => 2
                                            [gmenu_id] => 3
                                            [gmenu_name] => EDV
                                            [gparent] => 0
                                            [godering] => 3
                                        )

                                )

                        )

                )

            [17] => Array
                (
                    [14] => Array
                        (
                            [16] => Array
                                (
                                    [3] => Array
                                        (
                                            [menu_id] => 14
                                            [p_id] => 16
                                            [menu_name] => Gruppe anlegen
                                            [odering] => 1
                                            [pfad] => /projekt/edv/groupcreat.php
                                            [parent] => 17
                                            [emenu_id] => 17
                                            [ename_menu] => Gruppe
                                            [eparent] => 3
                                            [eodering] => 3
                                            [gmenu_id] => 3
                                            [gmenu_name] => EDV
                                            [gparent] => 0
                                            [godering] => 3
                                        )

                                )

                        )

                    [19] => Array
                        (
                            [11] => Array
                                (
                                    [3] => Array
                                        (
                                            [menu_id] => 19
                                            [p_id] => 11
                                            [menu_name] => Gruppe bearbeiten
                                            [odering] => 2
                                            [pfad] => /projekt/edv/groupupdate.php
                                            [parent] => 17
                                            [emenu_id] => 17
                                            [ename_menu] => Gruppe
                                            [eparent] => 3
                                            [eodering] => 3
                                            [gmenu_id] => 3
                                            [gmenu_name] => EDV
                                            [gparent] => 0
                                            [godering] => 3
                                        )

                                )

                        )

                )

        )

    [1] => Array
        (
            [2] => Array
                (
                    [8] => Array
                        (
                            [2] => Array
                                (
                                    [10] => Array
                                        (
                                            [menu_id] => 8
                                            [p_id] => 2
                                            [menu_name] => Profile
                                            [odering] => 1
                                            [pfad] => /projekt/profile.php
                                            [parent] => 2
                                            [emenu_id] => 2
                                            [ename_menu] => User Menü
                                            [eparent] => 1
                                            [eodering] => 2
                                            [gmenu_id] => 1
                                            [gmenu_name] => Main
                                            [gparent] => 0
                                            [godering] => 10
                                        )

                                )

                        )

                )

        )

    [] => Array
        (
            [3] => Array
                (
                    [7] => Array
                        (
                            [3] => Array
                                (
                                    [menu_id] => 9
                                    [p_id] => 7
                                    [menu_name] => Startseite
                                    [odering] => 1
                                    [pfad] => /projekt/edv/index.php
                                    [parent] => 3
                                    [emenu_id] => 3
                                    [ename_menu] => EDV
                                    [eparent] => 0
                                    [eodering] => 3
                                )

                        )

                    [19] => Array
                        (
                            [3] => Array
                                (
                                    [menu_id] => 15
                                    [p_id] => 19
                                    [menu_name] => Programme einfügen
                                    [odering] => 4
                                    [pfad] => /projekt/edv/programcreate.php
                                    [parent] => 3
                                    [emenu_id] => 3
                                    [ename_menu] => EDV
                                    [eparent] => 0
                                    [eodering] => 3
                                )

                        )

                )

            [4] => Array
                (
                    [3] => Array
                        (
                            [4] => Array
                                (
                                    [menu_id] => 11
                                    [p_id] => 3
                                    [menu_name] => Startseite
                                    [odering] => 1
                                    [pfad] => /projekt/admin/index.php
                                    [parent] => 4
                                    [emenu_id] => 4
                                    [ename_menu] => Admin
                                    [eparent] => 0
                                    [eodering] => 4
                                )

                        )

                    [4] => Array
                        (
                            [4] => Array
                                (
                                    [menu_id] => 12
                                    [p_id] => 4
                                    [menu_name] => Verlauf löschen
                                    [odering] => 2
                                    [pfad] => /projekt/admin/session_loeschen.php
                                    [parent] => 4
                                    [emenu_id] => 4
                                    [ename_menu] => Admin
                                    [eparent] => 0
                                    [eodering] => 4
                                )

                        )

                )

            [1] => Array
                (
                    [6] => Array
                        (
                            [10] => Array
                                (
                                    [menu_id] => 6
                                    [p_id] => 6
                                    [menu_name] => Ladepapiere
                                    [odering] => 2
                                    [pfad] => /projekt/ladepapiere/index.php
                                    [parent] => 1
                                    [emenu_id] => 1
                                    [ename_menu] => Main
                                    [eparent] => 0
                                    [eodering] => 10
                                )

                        )

                    [5] => Array
                        (
                            [10] => Array
                                (
                                    [menu_id] => 7
                                    [p_id] => 5
                                    [menu_name] => Archiv
                                    [odering] => 3
                                    [pfad] => /projekt/ladepapiere/archiv/index.php
                                    [parent] => 1
                                    [emenu_id] => 1
                                    [ename_menu] => Main
                                    [eparent] => 0
                                    [eodering] => 10
                                )

                        )

                    [14] => Array
                        (
                            [10] => Array
                                (
                                    [menu_id] => 13
                                    [p_id] => 14
                                    [menu_name] => Dummy End
                                    [odering] => 4
                                    [pfad] => /projekt/start3.php
                                    [parent] => 1
                                    [emenu_id] => 1
                                    [ename_menu] => Main
                                    [eparent] => 0
                                    [eodering] => 10
                                )

                        )

                )

            [9] => Array
                (
                    [2] => Array
                        (
                            [menu_id] => 20
                            [p_id] => 9
                            [menu_name] => Start
                            [odering] => 2
                            [pfad] => /projekt/start2.php
                            [parent] => 0
                        )

                )

        )

)
Hans_James ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Turnierbaum aus array erstellen kingflo PHP-Fortgeschrittene 11 30.07.2008 11:32
Array sortieren mit regex Lupi PHP Tipps 2008 3 21.07.2008 15:17
Array nach bestimmter Spalte sortieren GELight PHP Tipps 2006 4 19.08.2006 23:42
Mehrdimensionales Array sortieren Unbekanntes_Pferd PHP Tipps 2006 6 23.05.2006 20:42
array richtig sortieren, dann ausgeben Heart PHP Tipps 2006 5 28.04.2006 20:23
Array auslesen andrew22 PHP Tipps 2006 3 21.01.2006 23:06
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
Problem beim vergleichen von 2 Arrays PHP Tipps 2005-2 1 06.10.2005 14:25
Array verkehrt sortieren (key) // letzter Arrayeintrag PHP Tipps 2005-2 5 20.09.2005 15:55
Sortieren von Arrays mit mehr als 2 Dimensionen (Teil 2) Buhmann PHP-Fortgeschrittene 4 12.07.2005 14:03
Array sortieren PHP Tipps 2005 7 15.05.2005 02:14
2 Array in Abhänigkeit sortieren? PHP Tipps 2005 4 10.02.2005 20:31
Array mit Gruppen: Wie Sortieren PHP Tipps 2005 2 29.01.2005 15:15
Mehrdimensionales Array in eindimensionales Array umwandeln PHP-Fortgeschrittene 3 03.01.2005 22:31

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
array ordnen, mittelwert aus einem array berechnen php, php array index sortieren nach löschen, array php mittelwert, mysql array sortieren, php array ausgabe sortieren, mysql \order by array\, php array sortieren 1-10, mehrdimensionales array menu groups, php array aus zahlen sortieren und ausgeben, array nach bestimmte key sotieren, php fehler dokumentation 6135, mysql order by array sortieren, array sort 10 nach 1

Alle Zeitangaben in WEZ +1. Es ist jetzt 11:37 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.