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