<?php
$array = [
["division" => "division1"],
["division" => "division2"],
["division" => "division1", "department" => "department10"],
["division" => "division1", "department" => null, "team" => "team91"],
["division" => "division1", "department" => "department10", "team" => "team85"],
["division" => "division3", "department" => "department999"],
["division" => "division2", "department" => "department33"],
["division" => "division1", "department" => null, "team" => "team92"]
];
array_multisort(array_map('count', $array), SORT_DESC, $array);
$result = [];
foreach ($array as $row) {
foreach ($result as $saved) {
if (!array_diff_assoc($row, $saved)) {
continue 2;
}
}
$result[] = $row;
}
var_export($result);
preferences:
22.64 ms | 407 KiB | 5 Q