3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [ ['title' => 'foo', 'catid' => 1], ['title' => 'fi', 'catid' => 1], ['title' => 'bar', 'catid' => 2], ['title' => 'fum', 'catid' => 1], ['title' => 'blah', 'catid' => 3], ['title' => 'barn', 'catid' => 2], ['title' => 'bark', 'catid' => 2], ['title' => 'fa', 'catid' => 1], ]; $encounters = []; $catIds = []; foreach ($array as ['catid' => $v]) { $catIds[] = $v; $encounters[] = $e[$v] = ($e[$v] ?? 0) + 1; } array_multisort($encounters, $catIds, $array); var_export($array);

preferences:
27.29 ms | 405 KiB | 5 Q