3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [ [], ['2011','2010', '2012'], ['conference', 'journal', 'conference'], ]; function array_multisort_custom(array &$array, $columnKey, array $order) { // guard clause/condition if (!array_key_exists($columnKey, $array)) { throw new Exception('Nominated sorting column not found'); } // pad rows to consistent size $maxCount = max(array_map('count', $array)); array_walk($array, fn(&$row) => $row = array_pad($row, $maxCount, null)); // populate first sorting parameter with custom order array $priority = array_flip($order); $default = count($order); array_multisort( array_map(fn($v) => $priority[$v] ?? $default, $array[$columnKey]), ...$array ); } array_multisort_custom($array, 2, ['conference', 'journal']); var_export($array);

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
52.57 ms | 1150 KiB | 4 Q