Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   array sortieren (https://www.delphipraxis.net/59370-array-sortieren.html)

Evian 21. Dez 2005 11:29


array sortieren
 
Hallöchen Zusammen,

ich habe mir jetzt mal PHP zu gemüte geführt und bin jetzt bei einem kleinem Problem angelangt. Eigendlich ist es total trivial und lässt sich sicher auf jede Programmiersprache übertragen, aber ich weiß einfach nicht wie ich anfangen soll.

Also ich habe ein ARRAY mit 5 Feldstellen, die jeweils einen Wert zwischen -9 und 9 haben können. Jede Feldstelle entspricht einer Kategorie, also feld[1] = Kategorie 1, Feld[2] = Kathegorie 2, usw. Am Ende möchte ich die Werte nach dem größten geordnet, untereinander auf dem Bildschirm ausgeben.

Also ein Beispiel: Das Feld wäre {3,7,-6,2,-9} ... dann soll auf der Seite stehen:

Kategorie 2 = 7
Kategorie 1 = 3
Kategorie 4 = 2
Kategorie 3 = -6
Kategorie 5 = -9

---

im moment steht es aber leider noch so da:

Kategorie 1 = 3
Kategorie 2 = 7
Kategorie 3 = -6
Kategorie 4 = 2
Kategorie 5 = -9

---

Also es geht mir nur um den Ansatz, das ganze dann in PHP-Code umzusetzen ist sicher nicht das Problem.


mfg

Evian

Luckie 21. Dez 2005 11:39

Re: ARRAY SORTIEREN.
 
Ein Tutorial zu diversen Sortierverfahrren findest du von Daniel in der Tutorial-Sparte. Es sollte kein Problem darstellen den Beispielcode von Delphi nach PHP zu übertragen.

Und bitte editier den Titel deines Threads. Eine Schreibweise in nur Großbuchstaben wird als schreiend und somit als ziemlich unhöflich empfunden.

Evian 21. Dez 2005 11:46

Re: array sortieren
 
Hallo Luckie,

danke erstmal für die Antwort. Das Problem ist aber nicht unbedingt das sortieren des Feldes. (Gut habe die Überschrift vielleicht auch etwas doof gewählt) Wenn ich das Feld nähmlich einfach nach dem größten Wert sortieren würde, dann wüsste ich nicht mehr, welche Feldstelle zu welcher Kategorie gehört.

Deshalb brauche ich einen Ideenansatz, wie ich quasi sortieren kann, aber danach immernoch weiß, welche Feldstelle zu welcher Kategorie gehört.

Luckie 21. Dez 2005 11:54

Re: array sortieren
 
Kennt PHP Records? Dann steck das alles in Records und sortier diese nach deinem Kriterium. Dann hast du immer alles zusammen, was zusammen gehört. Ansonsten wirst du wohl eine zweite Liste führen müssen, die du eben synchron mit umordnest.

Evian 21. Dez 2005 12:11

Re: array sortieren
 
mh.. Records in dem Sinne gibt es nicht, aber ich habe gerade gelesen, dass jede Feldstelle bei PHP-Arrays jeden beliebigen Datentyp aufnehmen können. Ich mach mir jetzt einfach nen 2 Dimensionales Array, wo dann auch der Kathegorie name drinne steht. :)

leddl 21. Dez 2005 12:14

Re: array sortieren
 
Du kannst doch in PHP Arrays nicht nur über den Index ansprechen, sondern den einzelnen Elementen auch Namen zuordnen:
Code:
$adresse = array( 
      "Kategorie1" => "7",
      "Kategorie2" => "3",
      "Kategorie3" => -8,
      "Kategorie4" => "0");

Zugriff über: $adresse["Kategorie1"],...
//Edit:
Da das alleine noch nich viel bringt: :stupid:
Über die Funktion array_keys(<Array>) kannst du dir deine keys (hier: Kategorie1,...) ausgeben lassen
Bsp:
Code:
$array = array (0 => 100, "Farbe" => "rot");
print_r(array_keys ($array));

$array = array ("blau", "rot", "grün", "blau", "blau");
print_r(array_keys ($array, "blau"));

$array = array ("Farbe" => array("blau", "rot", "grün"), "Größe" => array("klein", "mittel", "groß"));
print_r(array_keys ($array));

würde folgendes ausgeben:

Array
(
    [0] => 0
    [1] => Farbe
)
Array
(
    [0] => 0
    [1] => 3
    [2] => 4
)
Array
(
    [0] => Farbe
    [1] => Größe
)

jfheins 21. Dez 2005 12:46

Re: array sortieren
 
Die PHP-Funktion asort sollte dir gute Dienste leisten ;)

leddl 21. Dez 2005 12:55

Re: array sortieren
 
Zitat:

Zitat von jfheins
Die PHP-Funktion asort sollte dir gute Dienste leisten ;)

:lol: Mist, ich wußte doch, daß es da noch was gab. :lol: Das is bei mir echt zu lange her, vielleicht sollte ich mich mal wieder ranwagen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:31 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