3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [ [ "ARRIVAL" => '2022-03-08', "INFO" => "TEST", "V1_PROZ_WET" => 7, "V1_ABS_WET" => 200, "V1_PROZ" => 4, "V1_ABS" => 150, "V2_PROZ_WET" => 10, "V2_ABS_WET" => 250, "V2_PROZ" => 5, "V2_ABS" => 180, "BEZ" => "TEST", "WET_TOTAL" => 500, "DRY_TOTAL" => 300 ], [ "ARRIVAL" => '2022-03-07', "INFO" => "TEST", "V1_PROZ_WET" => 7, "V1_ABS_WET" => 200, "V1_PROZ" => 4, "V1_ABS" => 150, "V2_PROZ_WET" => 10, "V2_ABS_WET" => 250, "V2_PROZ" => 5, "V2_ABS" => 180, "BEZ" => "TEST", "WET_TOTAL" => 500, "DRY_TOTAL" => 300 ], [ "ARRIVAL" => '2022-03-06', "INFO" => "TEST", "V1_PROZ_WET" => 7, "V1_ABS_WET" => 200, "V1_PROZ" => 4, "V1_ABS" => 150, "V2_PROZ_WET" => 10, "V2_ABS_WET" => 250, "V2_PROZ" => 5, "V2_ABS" => 180, "BEZ" => "TEST", "WET_TOTAL" => 500, "DRY_TOTAL" => 300 ], ]; foreach ($array as &$row) { uksort($row, fn($a, $b) => ($b === 'INFO') <=> ($a === 'INFO') ?: ($b === 'BEZ') <=> ($a === 'BEZ') ?: ($b === 'WET_TOTAL') <=> ($a === 'WET_TOTAL') ?: ($b === 'DRY_TOTAL') <=> ($a === 'DRY_TOTAL') ?: ($a === 'ARRIVAL') <=> ($b === 'ARRIVAL') ?: str_contains($a, '_WET') <=> str_contains($b, '_WET') ?: str_contains($b, '_PROZ') <=> str_contains($a, '_PROZ') ?: str_contains($b, '_ABS') <=> str_contains($a, '_ABS') ?: $a <=> $b ); } var_export($array);
Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.27, 8.4.1 - 8.4.14
array ( 0 => array ( 'INFO' => 'TEST', 'BEZ' => 'TEST', 'WET_TOTAL' => 500, 'DRY_TOTAL' => 300, 'V1_PROZ' => 4, 'V2_PROZ' => 5, 'V1_ABS' => 150, 'V2_ABS' => 180, 'V1_PROZ_WET' => 7, 'V2_PROZ_WET' => 10, 'V1_ABS_WET' => 200, 'V2_ABS_WET' => 250, 'ARRIVAL' => '2022-03-08', ), 1 => array ( 'INFO' => 'TEST', 'BEZ' => 'TEST', 'WET_TOTAL' => 500, 'DRY_TOTAL' => 300, 'V1_PROZ' => 4, 'V2_PROZ' => 5, 'V1_ABS' => 150, 'V2_ABS' => 180, 'V1_PROZ_WET' => 7, 'V2_PROZ_WET' => 10, 'V1_ABS_WET' => 200, 'V2_ABS_WET' => 250, 'ARRIVAL' => '2022-03-07', ), 2 => array ( 'INFO' => 'TEST', 'BEZ' => 'TEST', 'WET_TOTAL' => 500, 'DRY_TOTAL' => 300, 'V1_PROZ' => 4, 'V2_PROZ' => 5, 'V1_ABS' => 150, 'V2_ABS' => 180, 'V1_PROZ_WET' => 7, 'V2_PROZ_WET' => 10, 'V1_ABS_WET' => 200, 'V2_ABS_WET' => 250, 'ARRIVAL' => '2022-03-06', ), )
Output for 7.4.0 - 7.4.33
Fatal error: Uncaught Error: Call to undefined function str_contains() in /in/h76W2:58 Stack trace: #0 [internal function]: {closure}('V1_PROZ_WET', 'V1_ABS_WET') #1 /in/h76W2(62): uksort(Array, Object(Closure)) #2 {main} thrown in /in/h76W2 on line 58
Process exited with code 255.

preferences:
125.86 ms | 408 KiB | 5 Q