by Anonymous » 01 Feb 2025, 09:13
Ich bin immer noch sehr verwirrt darüber, wie ein Array nach bestimmten Werten sortiert werden kann. Ich weiß, dass Sie die Funktion cmd und die usort () verwenden sollen. Trotzdem bin ich nur verwirrt darüber, was ich tun soll. Ich möchte mein Array sortieren, damit die Schlüssel "Bronze", "Silber", "Gold", "Platinum" in dieser Reihenfolge gezeigt werden. Ich bin mir nicht sicher, wie ich das, was ich brauche, in Folgendes einfügen: < Br />
Code: Select all
function cmp($a, $b){
return strcmp(???);
}
< /code>
Ich habe also im Grunde genommen ein Array."itemname" => "Value"
< /code>
Ich möchte, dass das Ganze durch den Wert des "Wertes" bestellt wird. Wert könnte "Bronze"/"Silber"/"Gold"/"Platinum" sein. Und ich möchte, dass es in dieser Reihenfolge sortiert wird. $query = "SELECT * FROM postallions WHERE userid = :userid";
$params = array(':userid' => $userid);
try{
$stmt = $connection->prepare($query);
$result = $stmt->execute($params);
}
catch(PDOException $ex){
echo ("Failed to run query: " . $ex->getMessage());
}
$columns = $stmt->fetch();
$postallionlist = $columns;
print_r($postallionlist);
function compareMedals( $a, $b ) {
$aMap = array(0 => 'None', 1 => 'Bronze', 2 => 'Silver', 3 => 'Gold', 4 => 'Platinum', 5 => 'Uncomplete', 6 => 'Complete');
$aValues = array( 0, 1, 2, 3, 4, 5, 6);
$a = str_ireplace($aMap, $aValues, $a);
$b = str_ireplace($aMap, $aValues, $b);
return $a - $b;
}
usort($postallionlist, 'compareMedals');
print_r($postallionlist);
< /code>
Bearbeiten 3 < /strong>
Die print_r und dann der var_dump: < /p>
Array ( [userid] => 1 [0] => 1 [p1] => Silver [1] => Silver [p2] => Platinum [2] => Platinum [p3] => None [3] => None [p4] => None [4] => None [p5] => Bronze [5] => Bronze [p6] => Gold [6] => Gold [p7] => Complete [7] => Complete [p8] => None [8] => None [p9] => None [9] => None [p10] => None [10] => None )
array (size=22)
'userid' => string '1' (length=1)
0 => string '1' (length=1)
'p1' => string 'Silver' (length=6)
1 => string 'Silver' (length=6)
'p2' => string 'Platinum' (length=8)
2 => string 'Platinum' (length=8)
'p3' => string 'None' (length=4)
3 => string 'None' (length=4)
'p4' => string 'None' (length=4)
4 => string 'None' (length=4)
'p5' => string 'Bronze' (length=6)
5 => string 'Bronze' (length=6)
'p6' => string 'Gold' (length=4)
6 => string 'Gold' (length=4)
'p7' => string 'Complete' (length=8)
7 => string 'Complete' (length=8)
'p8' => string 'None' (length=4)
8 => string 'None' (length=4)
'p9' => string 'None' (length=4)
9 => string 'None' (length=4)
'p10' => string 'None' (length=4)
10 => string 'None' (length=4)
Ich bin immer noch sehr verwirrt darüber, wie ein Array nach bestimmten Werten sortiert werden kann. Ich weiß, dass Sie die Funktion cmd und die usort () verwenden sollen. Trotzdem bin ich nur verwirrt darüber, was ich tun soll. Ich möchte mein Array sortieren, damit die Schlüssel "Bronze", "Silber", "Gold", "Platinum" in dieser Reihenfolge gezeigt werden. Ich bin mir nicht sicher, wie ich das, was ich brauche, in Folgendes einfügen: < Br />
[code]function cmp($a, $b){
return strcmp(???);
}
< /code>
Ich habe also im Grunde genommen ein Array."itemname" => "Value"
< /code>
Ich möchte, dass das Ganze durch den Wert des "Wertes" bestellt wird. Wert könnte "Bronze"/"Silber"/"Gold"/"Platinum" sein. Und ich möchte, dass es in dieser Reihenfolge sortiert wird. $query = "SELECT * FROM postallions WHERE userid = :userid";
$params = array(':userid' => $userid);
try{
$stmt = $connection->prepare($query);
$result = $stmt->execute($params);
}
catch(PDOException $ex){
echo ("Failed to run query: " . $ex->getMessage());
}
$columns = $stmt->fetch();
$postallionlist = $columns;
print_r($postallionlist);
function compareMedals( $a, $b ) {
$aMap = array(0 => 'None', 1 => 'Bronze', 2 => 'Silver', 3 => 'Gold', 4 => 'Platinum', 5 => 'Uncomplete', 6 => 'Complete');
$aValues = array( 0, 1, 2, 3, 4, 5, 6);
$a = str_ireplace($aMap, $aValues, $a);
$b = str_ireplace($aMap, $aValues, $b);
return $a - $b;
}
usort($postallionlist, 'compareMedals');
print_r($postallionlist);
< /code>
Bearbeiten 3 < /strong>
Die print_r und dann der var_dump: < /p>
Array ( [userid] => 1 [0] => 1 [p1] => Silver [1] => Silver [p2] => Platinum [2] => Platinum [p3] => None [3] => None [p4] => None [4] => None [p5] => Bronze [5] => Bronze [p6] => Gold [6] => Gold [p7] => Complete [7] => Complete [p8] => None [8] => None [p9] => None [9] => None [p10] => None [10] => None )
array (size=22)
'userid' => string '1' (length=1)
0 => string '1' (length=1)
'p1' => string 'Silver' (length=6)
1 => string 'Silver' (length=6)
'p2' => string 'Platinum' (length=8)
2 => string 'Platinum' (length=8)
'p3' => string 'None' (length=4)
3 => string 'None' (length=4)
'p4' => string 'None' (length=4)
4 => string 'None' (length=4)
'p5' => string 'Bronze' (length=6)
5 => string 'Bronze' (length=6)
'p6' => string 'Gold' (length=4)
6 => string 'Gold' (length=4)
'p7' => string 'Complete' (length=8)
7 => string 'Complete' (length=8)
'p8' => string 'None' (length=4)
8 => string 'None' (length=4)
'p9' => string 'None' (length=4)
9 => string 'None' (length=4)
'p10' => string 'None' (length=4)
10 => string 'None' (length=4)
[/code]