<?php
$arr = [
[15, 16, 8, 1],
[2, 3, 4, 7],
[9, 11, 19, 6]
];
function bubbleSortRowCol(&$arr) {
$colCount = count($arr[0]);
$rowCount = count($arr);
$tempArr = [];
$columnArr = [];
foreach($arr as $key => $value) {
if($key % 2 === 0) {
$tempArr[$key] = bubbleSortAsc($value);
} else {
$tempArr[$key] = bubbleSortDesc($value);
}
}
var_dump($tempArr); echo PHP_EOL;
for($i = 0; $i < $colCount; $i++) {
$columnArr[$i] = bubbleSort(array_column($tempArr, $i));
}
var_dump($columnArr); echo PHP_EOL;
for($i = 0; $i < $rowCount; $i++) {
$tempArr[$i] = bubbleSort(array_column($columnArr, $i));
}
$arr = $tempArr;
}
function bubbleSortAsc(array $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;
}
function bubbleSortDesc(array $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;
}
function bSort($arr) {
bubbleSortRowCol($arr);
return $arr;
}
bSort($arr);
- Output for 7.0.0 - 7.0.20, 7.1.0 - 7.1.7, 7.1.20 - 7.1.25, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
- array(3) {
[0]=>
array(4) {
[0]=>
int(1)
[1]=>
int(8)
[2]=>
int(15)
[3]=>
int(16)
}
[1]=>
array(4) {
[0]=>
int(7)
[1]=>
int(4)
[2]=>
int(3)
[3]=>
int(2)
}
[2]=>
array(4) {
[0]=>
int(6)
[1]=>
int(9)
[2]=>
int(11)
[3]=>
int(19)
}
}
Fatal error: Uncaught Error: Call to undefined function bubbleSort() in /in/QYlFg:26
Stack trace:
#0 /in/QYlFg(74): bubbleSortRowCol(Array)
#1 /in/QYlFg(79): bSort(Array)
#2 {main}
thrown in /in/QYlFg on line 26
Process exited with code 255. - Output for 8.3.5
- Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
array(3) {
[0]=>
array(4) {
[0]=>
int(1)
[1]=>
int(8)
[2]=>
int(15)
[3]=>
int(16)
}
[1]=>
array(4) {
[0]=>
int(7)
[1]=>
int(4)
[2]=>
int(3)
[3]=>
int(2)
}
[2]=>
array(4) {
[0]=>
int(6)
[1]=>
int(9)
[2]=>
int(11)
[3]=>
int(19)
}
}
Fatal error: Uncaught Error: Call to undefined function bubbleSort() in /in/QYlFg:26
Stack trace:
#0 /in/QYlFg(74): bubbleSortRowCol(Array)
#1 /in/QYlFg(79): bSort(Array)
#2 {main}
thrown in /in/QYlFg on line 26
Process exited with code 255. - Output for 7.1.10
Process exited with code 137.- Output for 5.5.24 - 5.5.35, 5.6.8 - 5.6.28
- array(3) {
[0]=>
array(4) {
[0]=>
int(1)
[1]=>
int(8)
[2]=>
int(15)
[3]=>
int(16)
}
[1]=>
array(4) {
[0]=>
int(7)
[1]=>
int(4)
[2]=>
int(3)
[3]=>
int(2)
}
[2]=>
array(4) {
[0]=>
int(6)
[1]=>
int(9)
[2]=>
int(11)
[3]=>
int(19)
}
}
Fatal error: Call to undefined function bubbleSort() in /in/QYlFg on line 26
Process exited with code 255.
preferences:
172.36 ms | 402 KiB | 198 Q