Mario Lorenz: Array Sortier- und Manipulierproblem

Beitrag lesen

Ich habe folgendes kniffliges Array-Problem:

In einem Array entsprechen die Schlüssel einer festen ID und die Werte eine "Sortierwertigkeit".

$array = array("0" => "12",
               "1" => "34",
               "2" => "35",
               "3" => "48",
               "4" => "78",
               "5" => "80");

Ich möchte nun, das ID 34 vor ID 78 gesetzt wird und damit das Array so manipuliert wird, das das Array dann im Ergebnis so aussieht:

("0" => "12",
               "1" => "35",
               "2" => "48",
               "3" => "34",
               "4" => "78",
               "5" => "80");

Mein Lösungsansatz war folgender:

Das Ur-Array via array_flip() vertauschen:

("12" => "0",
               "34" => "1",
               "35" => "2",
               "48" => "3",
               "78" => "4",
               "80" => "5");

Dann:

$array[34]=$array[78]-0.5;

Ergibt:

("12" => "0",
               "34" => "3.5",
               "35" => "2",
               "48" => "3",
               "78" => "4",
               "80" => "5");

Dann sortieren nach den Werten:

("12" => "0",
               "35" => "2",
               "48" => "3",
               "34" => "3.5",
               "78" => "4",
               "80" => "5");

Das Array via array_flip() wieder vertauschen und mittels array_values() die Schlüssel wieder auf ein glattes nummerisches Format bringen.

Ich bekomme nun leider beim zweiten array_flip() die Fehlermeldung, das ich nur Strings und Integers "flippen" kann.

Gibt es vielleicht einen besseren Lösungsansatz?

Vielen Dank,

Mario