PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |

02-04-2004, 17:01
|
cocos
Newbie
|
|
Registriert seit: Mar 2004
Ort: germany
Beiträge: 10
|
|
array_multisort
Hallo,
habe ein 2 dimensionales array mit Elementen der Art
PHP-Code:
$data["Spalte"][1]
Jetzt will ich das gesamte Array nach einer "Spalte" sortieren. Mit array_multisort bleibt dabei der Index auch bei den anderen Spalten erhalten. Das Problem ist nur, dass die Anzahl der Spalten variabel sein soll, bei array_multisort aber alle Spalten(1-d Arrays) als Argument aufgerufen werden müssen:
PHP-Code:
array_multisort($data["Spalte1"], $data["Spalte2"], ...);
Ich kann die einzelnen Spalten natürlich über Schleifen alle ausgeben, aber halt nicht im Funktionsargument
Vielleicht hat jemand von Euch eine Idee?!
Grüße
Manuel
|

02-04-2004, 18:18
|
hibatsu
Junior Member
|
|
Registriert seit: Apr 2003
Beiträge: 205
|
|
Sollte glaub mit foreach() gehen.
|

02-04-2004, 19:30
|
cocos
Newbie
|
|
Registriert seit: Mar 2004
Ort: germany
Beiträge: 10
|
|
und wie genau??
|

02-04-2004, 19:42
|
Abraxax
  THE REAL HAXE (Administrator)
|
|
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
|
|
hast du überhaupt mal auf den link geklickt?
|

02-04-2004, 19:50
|
cocos
Newbie
|
|
Registriert seit: Mar 2004
Ort: germany
Beiträge: 10
|
|
Jab!
habs aber trotzdem nicht hinbekommen, deshalb habe ich nachgefragt. Wie schon gesagt: Die Elemente in einer Schleife ausgeben ist kein Problem. Aber als Parameter einer Funktion ??
|

02-04-2004, 19:52
|
hibatsu
Junior Member
|
|
Registriert seit: Apr 2003
Beiträge: 205
|
|
Dir muss man alles echt vorkauen...
PHP-Code:
foreach($var1 as $var2){
func($var2);
}
|

02-04-2004, 20:01
|
cocos
Newbie
|
|
Registriert seit: Mar 2004
Ort: germany
Beiträge: 10
|
|
Ja klar, weil ich genau das nicht wollte!!!
So wird die funktion mehrfach aufgerufen (je nachdem wie viele Elemente das Array hat).
Aber es sollen in dem Argument alle Array-Elemente drin stehen.
|

02-04-2004, 20:31
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
|
|
dann nimm halt n implode oder speicher die werte der reihe nach in einer variable...
|

02-04-2004, 21:41
|
cocos
Newbie
|
|
Registriert seit: Mar 2004
Ort: germany
Beiträge: 10
|
|
das geht nicht, da die Arrays nach einem implode zu einem String geworden sind, und die Argumente Arrays sein müssen!
|

02-04-2004, 21:49
|
asp2php
Banned
|
|
Registriert seit: Feb 2004
Beiträge: 11.745
|
|
und ist es strafbar in der Fkt n explode zuerst auszuführen
|

02-04-2004, 21:56
|
cocos
Newbie
|
|
Registriert seit: Mar 2004
Ort: germany
Beiträge: 10
|
|
nochmal:
PHP-Code:
array_multisort( array1, array2, array3, ....)
mit variabler Anzahl arrays! Ist das möglich?
In einen String einlesen ist nicht möglich, da array1 usw. ja wiederum arrays sind. Dann speichere ich nur das Wort "Array".
und danach ein explode, dann habe ich einen Array in dem überall das Wort "Arrray" drinsteht. Sorry, ich wünschte es würde so gehen...
|

02-04-2004, 23:39
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
|
|
array_multisort() wird zum Sortieren von entweder mehreren Arrays auf einmal, oder eines multidimensionalen Arrays (entsprechend einer von mehreren Dimensionen) benutzt. Bei der Sortierung werden die Schlüsselassoziationen beibehalten.
Zitat:
In einen String einlesen ist nicht möglich, da array1 usw. ja wiederum arrays sind. Dann speichere ich nur das Wort "Array".
|
Ich glaube das hätte dir auch keiner ernsthaft vorgeschlagen
|

03-04-2004, 02:21
|
cocos
Newbie
|
|
Registriert seit: Mar 2004
Ort: germany
Beiträge: 10
|
|
Hab's geschafft
habs mit der Funktion eval hinbekommen:
PHP-Code:
$arg = "array_multisort(";
foreach ($spaltennamen as $name)
{
$arg .= "\$array['".$name."'], ";
}
$arg .= "SORT_DESC);";
eval ($arg);
Trotzdem danke für eure Anregungen!
-----
Der Vollständigkeit halber: Ich schreibe mir gerade eine Klasse zurecht, die ähnlich Funktionen bieten soll, wie eine Datenbank aber nur csv-Dateien verwendet. Und um anhand einer Spalte zu sortieren, habe ich das benötigt.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|