<?php
$array = [
['Rank' => 7, 'Suit' => 'Hearts'],
['Rank' => 3, 'Suit' => 'Hearts'],
['Rank' => 6, 'Suit' => 'Spades'],
['Rank' => 10, 'Suit' => 'Spades'],
['Rank' => 3, 'Suit' => 'Spades'],
['Rank' => 6, 'Suit' => 'Hearts'],
['Rank' => 2, 'Suit' => 'Clubs'],
];
$rankCounts = array_count_values(array_column($array, 'Rank'));
usort(
$array,
function($a, $b) use ($rankCounts) {
return [$rankCounts[$b['Rank']], $b['Rank']] <=> [$rankCounts[$a['Rank']], $a['Rank']];
}
);
var_export($array);
preferences:
23.34 ms | 407 KiB | 5 Q