Сортировать плоский массив, используя заказ на индивидуальные значенияPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Сортировать плоский массив, используя заказ на индивидуальные значения

Сообщение Anonymous »

Я все еще очень запутался в том, как сортировать массив по определенным значениям. Я знаю, что вы должны использовать функцию CMD и USORT () . И все же я просто смущен тем, что я должен делать. Я хотел бы сортировать свой массив, чтобы ключи «бронза,« серебряная »,« золото »,« платиновая »показана в этом порядке. Я не уверен, как я бы поместил то, что мне нужно, в следующее:
function cmp($a, $b){
return strcmp(???);
}
< /code>

Итак, в основном у меня есть массив, это слушает, как это: < /p>

"itemname" => "Value"
< /code>

Я хотел бы, чтобы все это было упорядочено по значению «значения». Значение может быть "бронза"/"серебро"/"золото"/"платина". И я хотел бы, чтобы это было отсортировано в этом порядке. < /P>

edit 2 < /strong> < /p>

$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>

edit 3 < /strong>
print_r, а затем 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)


Подробнее здесь: https://stackoverflow.com/questions/292 ... alue-order
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»