3v4l.org

run code in 300+ PHP versions simultaneously
<?php function getDaysUnderTempDictionary(float $targetTemp): array { //This is just for mocking a CSV file $dataString = <<<EOT 2019,1,1,0,0.1 2019,1,1,1,0.4 2019,1,1,2,0.8 2019,1,1,3,1.3 2019,1,1,4,1.8 2020,1,1,0,-3.9 EOT; $stream = fopen('php://memory', 'r+'); fwrite($stream, $dataString); rewind($stream); $years = []; while ($data = fgetcsv($stream)) { $year = $data[0]; if ($data[4] <= $targetTemp) { if(!isset($years[$year])){ $years[$year] = 0; } $years[$year]++; } } foreach($years as $year => $hours){ $years[$year] = $hours / 24; } return $years; } var_dump(getDaysUnderTempDictionary(4));
Output for 8.4.1 - 8.4.12
Deprecated: fgetcsv(): the $escape parameter must be provided as its default value will change in /in/RWFPK on line 18 Deprecated: fgetcsv(): the $escape parameter must be provided as its default value will change in /in/RWFPK on line 18 Deprecated: fgetcsv(): the $escape parameter must be provided as its default value will change in /in/RWFPK on line 18 Deprecated: fgetcsv(): the $escape parameter must be provided as its default value will change in /in/RWFPK on line 18 Deprecated: fgetcsv(): the $escape parameter must be provided as its default value will change in /in/RWFPK on line 18 Deprecated: fgetcsv(): the $escape parameter must be provided as its default value will change in /in/RWFPK on line 18 Deprecated: fgetcsv(): the $escape parameter must be provided as its default value will change in /in/RWFPK on line 18 array(2) { [2019]=> float(0.20833333333333334) [2020]=> float(0.041666666666666664) }
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.25
array(2) { [2019]=> float(0.20833333333333334) [2020]=> float(0.041666666666666664) }

preferences:
91.17 ms | 408 KiB | 5 Q