PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP 3dimensionales Array sortieren


blax
2003-10-03, 17:14:20
Hi...kann mir wer verraten wie ich am besten ein 3-dimensionales Array sortieren soll?
Bsp:

Array(Array("B", "A", "D"), Array(789123, 32718, 23178), Array("Max", "Phillip", "Astrid"))

->wenn ich hier z.b. als sorier-kriterium "B", "A" und "D" nehme, soll das auch dem entsprechen soritiert werden..

Nase
2003-10-03, 17:49:08
Ich denke da wirst du hier fündig:
http://de3.php.net/manual/de/function.array-multisort.php

blax
2003-10-03, 17:57:03
mmm..hab mich in der Fragestellun jetz irgendwie vertan..ich meine folgendes:

[0]->{10, 21, "F"}
[1]->{23, 84, "A"}
[2]->{43, 32, "D"}


..und diese 2 arrays nach den buchstaben ("F", "A", "D") sortieren,..

Nase
2003-10-03, 18:26:13
Sorry, da kann ich dir nicht helfen. Hab mir bei einem ähnlichen Problem letztens auch einen abgebrochen. Vielleicht gibt es ja einen anderen Weg, das gleiche zu erreichen ohne Arrays zu benutzen. Schau mal im Programmieren-Forum, da hatte ich mal einen Thread bzgl. Sortieren von mehrdimensionalen Arrays aufgemacht.

blax
2003-10-03, 18:34:36
k. danke

blax
2003-10-03, 19:23:05
Ich hab mir jetz auf die schnelle selber was gebastelt. Es is zwar nicht besonders effizient, aber reicht mir fürs erste.

for($i=0; $i<count($vok); $i++){
&nbsp;&nbsp;&nbsp;for($j=0; $j<count($vok); $j++){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$str1=strtolower($vok[$j][$flag]);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$str2=strtolower($vok[$i][$flag]);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($str1>$str2){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$tmp=$vok[$i];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$vok[$i]=$vok[$j];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$vok[$j]=$tmp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;}
}

Nase
2003-10-03, 19:33:54
Ok, wenns funktioniert. Dürfte man denn auch fragen, was du damit machst ?

blax
2003-10-03, 19:36:20
ein vokabel-verzeichnis. (pseudo)
Ich hab leider keine datenbanken zur verfügung...

Nase
2003-10-03, 19:38:09
Danke.

blax
2003-10-03, 19:38:33
andere frage: weißt du wie ich einen textbereich aus einem string herausschneiden kann? (substring in java)

Nase
2003-10-03, 19:40:57
string substr ( string string, int start [, int length])

blax
2003-10-03, 19:48:23
mmmmmm

"das is ein string..kA was da drin steh [hallo] soll"

wie filtere ich das "[hallo]" hier heraus?

Nase
2003-10-03, 19:55:16
mal auf die schnelle:

$string = 'das is ein string..kA was da drin steh [hallo] soll';

$pieces = explode("[", $string);

$newstring = $pieces[0];

$pieces = explode("]", $string);

$newstring .= $pieces[1];
Zwar nicht die schönste Lösung aber funktioniert.

Ich bezweifle allerdings irgendwie, dass der Satzteil der rausgeschnitten werden soll, immer in Klammern steht.

blax
2003-10-03, 20:00:20
naja..doch..der is eigentlich schon immer in klammern

die lösung is echt nicht sehr elegant..das stimmt :D
vielleicht finde ich noch eine schönere

aber trotzdem danke

Nase
2003-10-03, 20:02:17
Hätte da auch noch eine andere Möglichkeit. Sieht vor allem auch professioneller aus :)

$string = 'das is ein string..kA was da drin steh [hallo] soll';

list($string1, $string2) = split('\\[hallo\\]', $string);

$newstring = $string1 . $string2;