php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.10.2005, 00:27  
Benutzer
 
Registriert seit: 28.01.2005
Beiträge: 83
MrCavity
Standard array nach mehreren atributen sortieren

hallo...
ich habe ein kniffliges problem, doch ich finde keine lösung.
ich habe z.b. folgendes array:

$fahrer[0]["Name"]=Fahrer 1
$fahrer[0]["Zeit"]=1234
$fahrer[0]["Punkte"]=10
$fahrer[1]["Name"]=Fahrer 2
$fahrer[1]["Zeit"]=1235
$fahrer[1]["Punkte"]=18
$fahrer[2]["Name"]=Fahrer 3
$fahrer[2]["Zeit"]=1234
$fahrer[2]["Punkte"]=9
$fahrer[3]["Name"]=Fahrer 4
$fahrer[3]["Zeit"]=1233
$fahrer[3]["Punkte"]=5

dieses möchte ich nun nach der zeit sortieren. dies mache ich folgender maßen:

Code:
function sor1($a, $b){
return strnatcasecmp($a["Zeit"], $b["Zeit"]);};
usort($fahrer, "sor1");
soweit so gut, doch jetzt möchte ich das bei zeitgleichheit wie bei fahrer 3 und 1 die bessere punktzahl die reihenfolge entscheidet... hat jemand eine idee wie man das verwirklichen kann?
danke für tipps
MrCavity ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 09.10.2005, 00:38  
Erfahrener Benutzer
 
Registriert seit: 20.01.2005
Beiträge: 1.557
PHP-Kenntnisse:
Fortgeschritten
Buhmann ist zur Zeit noch ein unbeschriebenes Blatt
Buhmann eine Nachricht über ICQ schicken Buhmann eine Nachricht über MSN schicken
Standard

PHP-Code:
<?php
function sor1($a$b){
$n strnatcasecmp($a["Zeit"], $b["Zeit"]);
return (
$n==0)?strnatcasecmp($b["Punkte"], $a["Punkte"]):$n;
}
usort($fahrer"sor1");
?>
Buhmann ist offline  
Alt 09.10.2005, 00:45  
Benutzer
 
Registriert seit: 28.01.2005
Beiträge: 83
MrCavity
Standard

funktioniert... wow, besten dank!
MrCavity ist offline  
Alt 10.11.2005, 08:13  
Benutzer
 
Registriert seit: 28.01.2005
Beiträge: 83
MrCavity
Standard

sagt mal, bekommt man das auch mit drei atributen hin?
also in erster instanz nach zeit, dann nach punkte und wenn das alles gleich ist auch noch alphabetisch nach name sortieren?

ich habs versucht, doch bekomme es leider nicht hin...
MrCavity ist offline  
Alt 10.11.2005, 10:56  
Benutzer
 
Registriert seit: 28.01.2005
Beiträge: 83
MrCavity
Standard

kann mir denn keiner einen tipp geben?
MrCavity ist offline  
Alt 10.11.2005, 10:59  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Als oberen Index die Zeit nehmen (nicht den obersten, sonst überschreibst du dir vielleicht Einträge).

$fahrer[]["1245"] = array("Name" => "Peter", "Punkte" => 5);
$fahrer[]["1252"] = ...
Zergling-new ist offline  
Alt 10.11.2005, 11:13  
Gast
 
Beiträge: n/a
Standard

Der Tipp von Buhmann etwas auseinandergezogen und etwas anders notiert hilft Dir vielleicht weiter.
PHP-Code:
<?php
function sor1($a$b) {
    
    
$vergleich=strnatcasecmp($a['Zeit'], $b['Zeit']);

    if (
$vergleich==0) {
        
$vergleich=strnatcasecmp($a['Punkte'], $b['Punkte']);
    }
    
// hier weitere Vergleiche bei $vergleich==0 einfügen
    
return $vergleich;
}

usort($fahrer"sor1"); 
?>
 
Alt 10.11.2005, 13:35  
Benutzer
 
Registriert seit: 28.01.2005
Beiträge: 83
MrCavity
Standard

ah ja, jetzt hab ich es geschnallt...
besten dank
MrCavity 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 mehreren Feldern sortieren Marcel1 PHP Tipps 2008 4 04.06.2008 05:09
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
Array mit Gruppen: Wie Sortieren PHP Tipps 2005 2 29.01.2005 15:15
[Erledigt] Mehrdimensionales Array in eindimensionales Array umwandeln PHP-Fortgeschrittene 3 03.01.2005 22:31

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php array nach bezeichnung sortieren, php zeit sortieren, atributen, php nach zeit sortieren, zeit sortieren php, http://www.php.de/php-tipps-2005-2/32122-array-nach-mehreren-atributen-sortieren.html, array nach namen sortieren, array nach zeitstempel sortieren php, php array datum sortieren, php liste nach zeit sortieren, php mehrdimensionales array nach spalten sortieren \usort\, php array sortieren nach time(), spalten sortieren nach zeit php, php array nach uhrzeit sortieren, arrays nach zeit sortieren, mehrdimensionales array nach der uhrzeit sortieren php, php zweidimensionales array nach zeit sortieren, array nach erster spalte sortieren, bei gleichheit nach zweiter, php array nach mehreren, array zeit sortieren

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:55 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.