3v4l.org

run code in 300+ PHP versions simultaneously
<?php $arr = [ [15, 16, 8, 1], [2, 3, 4, 7], [9, 11, 19, 6] ]; $sortedArr = []; function bubbleSortRowCol($arr) { $colCount = 0; $tempArr = []; $columnArr = []; foreach($arr as $key => $row) { $tempArr[$key] = bubbleSort($row); $colCount = count($row); } for($i = 0; $i < $colCount; $i++) { $columnArr[] = bubbleSort(array_column($arr, $i)); } if($columnArr !== $sortedArr) { bubbleSortRowCol($columnArr); } return $tempArr; } function fullSortArr($arr) { $fullArr = []; $tempArr = []; $countArr = []; $n = 0; foreach($arr as $value) { $fullArr = array_merge($fullArr, $value); $countArr[] = count($value); } asort($fullArr); foreach($countArr as $key => $length) { $tempArr[] = array_slice($fullArr, $n, $length); $n += $length; } return $tempArr; } function bubbleSort($arr) { $sorted = false; while (false === $sorted) { $sorted = true; for ($i = 0; $i < count($arr) - 1; $i++) { $current = $arr[$i]; $next = $arr[$i + 1]; if ($next < $current) { $arr[$i] = $next; $arr[$i + 1] = $current; $sorted = false; } } } return $arr; } $sortedArr = fullSortArr($arr); print_r(bubbleSortRowCol($arr));

preferences:
56.86 ms | 402 KiB | 5 Q