Sortierung eines Array´s mit ausnahmen

JesusFreak777

Erfahrenes Mitglied
Hallo,

ich bin mir nicht ganz sicher ob dieses Forum das richtige ist, aber ich Versuchs einfach mal (gibt ja hier viele fähige Leute)

mir Fehlt es eher am Konzept als am können,... aber das können zieht nach,...

ich möchte Gerne ein Multidimensionales Array sortieren sodass immer das Datum an erster stelle kommt (einfacher Timestamp array('datum' => timestampvon-timestampbis) )

soweit so gut,...
mit http://wiki.yaslaw.info/wikka/PhpArraySortBySubarrayItem lässt sich das auch einfach sortieren,...

jetzt möchte ich aber zu beginn eine marke setzen (das bekomm ich hin) und diese marke bestimmt dann das dieses subarray an 1., 2., 3.,... stelle steht egal wie die sortierung sein soll,... der rest wird weiterhin automatisch sortiert,...


ist das verständlich****?
nochmal grahisch:

array(12,5,3,8,5)

standart nach sortierung
3,5,5,8,12

ausnahme
wert2 (3.stelle): pos 2
5,3,5,8,12

geht sowas (muss mit multidiemensionale arrays auskommen,...)
 
Zuertst mit array_splice() den Abschnitt entfernen (also pos 2)
Dann Sortieren
Anschliessend mit array_splice() den Array aufteilen und mit array_merge() dann alles wieder zusammensetzen
PHP:
$array = array(12,5,3,8,5);
$index = 2;     //Position im Ausgangsarray
$newPos = 1;    //Neue Position im endgültigen Array

//den fixen Eintrag aus dem Array entfernen
$valueArray = array_splice($array, $index, 1);
//Den Array sortieren
//Hier natürlich dann array_sort_by_subarray_item() verwenden
sort($array);
//Und wieder zusammensetzen: Alles bis zu $newPos + Der ausgelesene Eintrag + alles ab $newPos
//Nach dem array_splice hat $array nur noch die Inhalte nach der neuen Position, auch wenn array_splice($array) und $array in der gleichen Befehlszeile stehen
$array = array_merge(array_splice($array, 0, $newPos), $valueArray, $array);
print_r($array);
 
Zurück