AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mit PHP Array sotieren

Ein Thema von ferby · begonnen am 2. Mai 2007 · letzter Beitrag vom 5. Mai 2007
Antwort Antwort
Seite 1 von 2  1 2      
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#1

Mit PHP Array sotieren

  Alt 2. Mai 2007, 11:20
Hallo,

gibt es in PHP eine fertige Funktion mit dem ich folgenden Array sotieren kann.

$Array["Name"]["Punkte"]

Der Array soll nach den Punkten sotiert werden,
also zum Beispiel aus

Alex 10
Mike 20
Toni 5
Susi 14

soll dann


Mike 20
Susi 14
Alex 10
Toni 5


werden.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Mit PHP Array sotieren

  Alt 2. Mai 2007, 11:25
sort() bzw usort()
Markus Kinzler
  Mit Zitat antworten Zitat
CCRDude
(Gast)

n/a Beiträge
 
#3

Re: Mit PHP Array sotieren

  Alt 2. Mai 2007, 11:26
Die Mehrdimensionalität deiner Definition sehe ich im Beispiel jetzt nicht, aber allgemein: einfach mal auf de.php.net gehen und nach "array sorting" suchen
Dann findest Du z.B. array_multisort oder usort, mit Beispielen.
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#4

Re: Mit PHP Array sotieren

  Alt 2. Mai 2007, 13:41
Hallo,

also ich blicke bei PHP noch nicht ganz durch

Ich versuche gerade meine eigene Funktion zu schreiben, die das ganze sotieren soll.

Hier mein PHP Source:

Code:
<html>

<head>
</head>

<body>
<?
   function swap_zwei_dim_array($pos1,$pos2, &$INI)
   {
     $Temp=$INI;
     $INI["Eventpunkte"][$pos1."P"]=$Temp["Eventpunkte"][$pos2."P"];
     $INI["Eventpunkte"][$pos2."P"]=$Temp["Eventpunkte"][$pos1."P"];
     $INI["Eventpunkte"][$pos1."N"]=$Temp["Eventpunkte"][$pos2."N"];
     $INI["Eventpunkte"][$pos2."N"]=$Temp["Eventpunkte"][$pos1."N"];
   }
   
   // Lade INI
   $INI = parse_ini_file("Eventpunkte.ini", true);
   $Anzahl=$INI["Eventpunkte"]["UserAnzahl"];
   
   // Sotieren
   for ($i=1; $i<$Anzahl-1; $i++)
   for ($i2=$Anzahl-1; $i2>=$i; $i2--)
   if ($INI["Eventpunkte"][$i2."P"] < $INI["Eventpunkte"][($i2+1)."P"])
   swap_zwei_dim_array($i2, $i2+1, $INI);
   
   // Ausgeben
    echo "Eventpunkte\n";

   echo "<table>\n";
   echo "<td>\n\n";   
      
    for($i=1; $i<$Anzahl+1; $i++)
    echo sprintf("%02d",$i).". ".$INI["Eventpunkte"][$i."N"]."
\n";

    echo "</td>\n\n";

    echo "<td>\n";
    echo "  \n";
    echo "</td>\n\n";

    echo "<td>\n\n";

    for($i=1; $i<$Anzahl+1; $i++)
    echo "".$INI["Eventpunkte"][$i."P"].""."
\n";

   echo "</td>\n";
   echo "</table>\n\n";
?>

</body>
</html>
Wobei die Datei Eventpunkte.ini so aufgebaut ist:

Code:
[Eventpunkte]
UserAnzahl=10
1N=Ferby
1P=20
2N=Begonia
2P=10
3N=Lovemydoom
3P=5
4N=Shimiru
4P=4
5N=Durkhoom
5P=3
6N=Saliva
6P=2
7N=Berdugo
7P=1
8N=Saruelron
8P=5,5
9N=Lizinia
9P=1,5
10N=Bloodmira
10P=18

Das Programm sotiert teilweiße, allerdings enstehen immer wieder Fehler...
Wenn ich an den Weten etwas änder, dann passt es manchmal, und manchmal nicht.
Leider finde ich meinen Fehler nicht.

Blickt hier wer soweit durch, das er den Fehler findet?
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#5

Re: Mit PHP Array sotieren

  Alt 5. Mai 2007, 14:37
Hat hier wirklich keiner eine Idee wo sich der Fehler eingeschlichen haben könnte?
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#6

Re: Mit PHP Array sotieren

  Alt 5. Mai 2007, 15:06
Warum benutzt du nicht einer der oben genannten Funktionen? Ein Bubblesort ist nicht gerade für seine Schnelligkeit bekannt und ein selbstgeschriebener, schlecht optimierter und fehlerhafter erst recht nicht.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#7

Re: Mit PHP Array sotieren

  Alt 5. Mai 2007, 15:12
Hallo,

weil ich das mit den oben gennanten Funktionen nicht hinbekomme....
habe schon gegoogelt, aber sogut wie alle Funktionen, die ich gefunden habe, Funktionieren nicht mit einen 2-Dimensionalen Array,
bzw sind zu komplex für mich.

Bubbelsort mag zwar nicht gerade die beste sein, ist aber die einfachste.
Und da ich noch ein PHP Newb bin, würde ich gerne die Funktion verstehen die ich benütze.
  Mit Zitat antworten Zitat
Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#8

Re: Mit PHP Array sotieren

  Alt 5. Mai 2007, 15:20
puhh... Also du würdest uns das Leben leichter machen, wenn du einmal
print_r($<array to sort>);
machst, dir den Quelltext im Browser ansiehst (damit die Zeilenumbrüche und Einrückungen noch da sind) und hier reinpostest. Ich bin mir näcmlich immernoch nicht im klaren, wie deine Datenstruktur aussieht und was sortiert werden soll .
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Mit PHP Array sotieren

  Alt 5. Mai 2007, 16:43
Sortiere erst alle Teil-Arrays durch und dann sortiere das Haupt-Array mit usort, wobei du den höchsten Wert der Subarrays vergleichst:

Code:
$foo sei ein 2-dimensionales Array

function cmparray($a, $b)
{
  return ($a[sizeof($a)-1]<$b[sizeof($b)-1])?-1:($a[sizeof($a)-1]>$b[sizeof($b)-1])?1:0;
}

//...

for ($i=0; $i<sizeof($foo)); $i++)
{
  sort($foo[$i]);
}

usort($foo, cmparray);
EDIT: ups, Denkfehler. So funktioniert das natürlich nicht.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Mit PHP Array sotieren

  Alt 5. Mai 2007, 16:43
evtl. bringt dich das ja weiter: PHP-Doku: array_multisort
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz