|
Vorheriges Thema: Nächstes Thema: |
Autor |
Nachricht |
Sir Quicksand Häufiger Poster
Anmeldungsdatum: 19.01.2005 Beiträge: 304 Wohnort: Hannover
|
Verfasst am: 21.09.2005 13:02:57 Titel: Array sortieren ^^ |
|
|
Hi Leute, hi Jan,
DIESES Problem gab es noch NIE. *ggg*
Gleich vorab, ich bin zu doof und probiere schon den gesamten scheiß Tag rum:
Aus einer SQL Abfrage bekomme ich folgendes Array (ausgegeben mit print_r):
Array ( [0] => Array ( [0] => 291 [SUM( 7H1809159 )] => 291 [1] => 233 [SUM( 7H1809159A )] => 233 [2] => 99 [SUM( 7H1809159B )] => 99 [3] => 116 [SUM( 7H1809159C )] => 116 [4] => 15 [SUM( 7H1809159D )] => 15 [5] => 103 [SUM( 7H3809159 )] => 103 [6] => 33 [SUM( 7H3809159A )] => 33 [7] => 55 [SUM( 7H3809159B )] => 55 [8] => 5 [SUM( 7H3809159C )] => 5 [9] => 71 [SUM( 7H3809159D )] => 71 ) )
Jetzt möchte ich nach den Zahlen aufsteigend sortieren, benötige aber weiterhin die Bezeichnung z. B. SUM( 7H3809159D ). Also nach dem sortieren will ich über z. B. array[n] auf den sortierten Wert zugreifen und zusätzlich möchte ich die dazugehörige Bezeichnung (ich weiß nicht wie ich da rankomme) verwenden.
Lösung Leute? |
|
Nach oben |
|
|
admin Site Admin
Anmeldungsdatum: 16.01.2005 Beiträge: 323 Wohnort: Berlin
|
Verfasst am: 21.09.2005 17:06:43 Titel: |
|
|
also erstmal gibts diverse sortierverfahren, dazu noch eine funktion in flash die mittels callback soriert. ansonsten: warum nicht einfach SELECT *.... ORDER BY SUM(meinfeld)? |
|
Nach oben |
|
|
Sir Quicksand Häufiger Poster
Anmeldungsdatum: 19.01.2005 Beiträge: 304 Wohnort: Hannover
|
Verfasst am: 04.10.2005 15:02:34 Titel: |
|
|
Ich möchte eigentlich nicht die ganze Zeit Zwischenergebnisse in die DB hochladen und dann sortiert wieder rausziehen.
Es muß doch eine Einfache Methode für das Sortieren geben.
Wert Name
2 Jan
4 Walter
3 Horst
4 Micha
in SQL: Select * bla bla ORDER BY Name DESC
4 Walter
4 Micha
2 Jan
3 Horst
Select * bla bla ORDER BY Wert ASC
2 Jan
3 Horst
4 Micha
4 Walter
Ich möchte es in PHP machen |
|
Nach oben |
|
|
admin Site Admin
Anmeldungsdatum: 16.01.2005 Beiträge: 323 Wohnort: Berlin
|
Verfasst am: 04.10.2005 15:30:13 Titel: |
|
|
ich glaube wir sollten demnächst mal eine doku zum thema programmiergrundkonstrukte machen. wo dann alles sowas behandelt wird wie sortierverfahren, suchverfahren, klassische ablaufsteuerung, variablenbenennung usw..
zum sortieren:
bubblesort:
Code: |
$a = array(3,6,1,5,9,44,2);
$ch = true;
while($ch)
{
$ch = false;
for($i=0;$i<count($a)-1;$i++)
{
if($a[$i] < $a[$i+1])
{
$b = $a[$i];
$a[$i] = $a[$i+1];
$a[$i+1] = $b;
$ch = true;
}
}
} |
die tauschbedingung kannst du jetzt sicher auch allein an deine bedürfnisse anpassen
ansonsten tuts auch uasort, uksort und usort jeweils mit callback funktion die ansich ja auch nur obiges machen (naja vielleicht nicht unbedingt bubblesort, aber prinzipiell läufts da auch nicht anders ab)
gruss,
jan. |
|
Nach oben |
|
|
Sir Quicksand Häufiger Poster
Anmeldungsdatum: 19.01.2005 Beiträge: 304 Wohnort: Hannover
|
Verfasst am: 05.10.2005 09:02:31 Titel: |
|
|
Hi Jan,
bei dem Sortieren mit PHP stelle ich mich mal wieder total blöd an, aber Dein Vorschlag ist doch nur ein 1. dimensionales Array. Somit habe ich nichts gewonnen, oder reicht mein Intellekt hier nicht weit genug? |
|
Nach oben |
|
|
Sir Quicksand Häufiger Poster
Anmeldungsdatum: 19.01.2005 Beiträge: 304 Wohnort: Hannover
|
Verfasst am: 12.10.2005 15:20:19 Titel: |
|
|
Code: |
function multi_sort($array, $akey)
{
function compare2($a, $b)
{
global $key;
return strnatcmp($a[$key], $b[$key]);
}
usort($array, "compare2");
return $array;
}
//Es wird nach "reichweite" sortiert
$ergebnisarray = multi_sort2($sti_li, $key = 'reichweite');
|
|
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|
|
|