Guest
Sortieren Sie ein 2D -Array nach einer Spalte, ohne die Tasten der ersten Ebene zu erhalten
Post
by Guest » 28 Jan 2025, 03:01
Ich versuche, dieses assoziative Array in PHP zu sortieren und nach Feldname zu sortieren < /code> < /p>
Code: Select all
$fonts = array(
0 => ["index" => 0, "name" => "Arial", "path" => "assets/fonts/arial.ttf"],
1 => ["index" => 1, "name" => "Times", "path" => "assets/fonts/times.ttf"],
2 => ["index" => 2, "name" => "Roboto", "path" => "assets/fonts/roboto.ttf"],
3 => ["index" => 3, "name" => "AlexBrush", "path" => "assets/fonts/AlexBrush-Regular.ttf"],
);
< /code>
Ich versuche die Einträge nach Namen zu sortieren, aber die mit dem Eintrag selbst verknüpften Schlüssel zu halten. Ich möchte also: < /p> < Br />
$fonts = array(
3 => ["index" => 3, "name" => "AlexBrush", "path" => "assets/fonts/AlexBrush-Regular.ttf"],
0 => ["index" => 0, "name" => "Arial", "path" => "assets/fonts/arial.ttf"],
2 => ["index" => 2, "name" => "Roboto", "path" => "assets/fonts/roboto.ttf"],
1 => ["index" => 1, "name" => "Times", "path" => "assets/fonts/times.ttf"],
);
< /code>
Hier ist der bloße Mindestcode, der das Problem freilegt (PHP Ver +7): < /p>
function cmp($a, $b)
{
return strcmp($a["name"], $b["name"]);
}
$fonts = array(
0 => ["index" => 0, "name" => "Arial", "path" => "assets/fonts/arial.ttf"],
1 => ["index" => 1, "name" => "Times", "path" => "assets/fonts/times.ttf"],
2 => ["index" => 2, "name" => "Roboto", "path" => "assets/fonts/roboto.ttf"],
3 => ["index" => 3, "name" => "AlexBrush", "path" => "assets/fonts/AlexBrush-Regular.ttf"],
);
uasort($fonts, "cmp");
for($i = 0; $i < 4; $i++)
{
echo "
".$fonts[$i]["name"];
}
< /code>
Ich verwende uasort () < /code>, da es die Tasten beim Sortieren des Arrays zugeordnet halten soll. Wenn ich das Array drucke, bekomme ich leider die gleiche Bestellung, das heißt: < /p>
Arial
Times
Roboto
AlexBrush
1738029685
Guest
Ich versuche, dieses assoziative Array in PHP zu sortieren und nach Feldname zu sortieren < /code> < /p> [code]$fonts = array( 0 => ["index" => 0, "name" => "Arial", "path" => "assets/fonts/arial.ttf"], 1 => ["index" => 1, "name" => "Times", "path" => "assets/fonts/times.ttf"], 2 => ["index" => 2, "name" => "Roboto", "path" => "assets/fonts/roboto.ttf"], 3 => ["index" => 3, "name" => "AlexBrush", "path" => "assets/fonts/AlexBrush-Regular.ttf"], ); < /code> Ich versuche die Einträge nach Namen zu sortieren, aber die mit dem Eintrag selbst verknüpften Schlüssel zu halten. Ich möchte also: < /p> < Br /> $fonts = array( 3 => ["index" => 3, "name" => "AlexBrush", "path" => "assets/fonts/AlexBrush-Regular.ttf"], 0 => ["index" => 0, "name" => "Arial", "path" => "assets/fonts/arial.ttf"], 2 => ["index" => 2, "name" => "Roboto", "path" => "assets/fonts/roboto.ttf"], 1 => ["index" => 1, "name" => "Times", "path" => "assets/fonts/times.ttf"], ); < /code> Hier ist der bloße Mindestcode, der das Problem freilegt (PHP Ver +7): < /p> function cmp($a, $b) { return strcmp($a["name"], $b["name"]); } $fonts = array( 0 => ["index" => 0, "name" => "Arial", "path" => "assets/fonts/arial.ttf"], 1 => ["index" => 1, "name" => "Times", "path" => "assets/fonts/times.ttf"], 2 => ["index" => 2, "name" => "Roboto", "path" => "assets/fonts/roboto.ttf"], 3 => ["index" => 3, "name" => "AlexBrush", "path" => "assets/fonts/AlexBrush-Regular.ttf"], ); uasort($fonts, "cmp"); for($i = 0; $i < 4; $i++) { echo " ".$fonts[$i]["name"]; } < /code> Ich verwende uasort () < /code>, da es die Tasten beim Sortieren des Arrays zugeordnet halten soll. Wenn ich das Array drucke, bekomme ich leider die gleiche Bestellung, das heißt: < /p> Arial Times Roboto AlexBrush [/code]