3v4l.org

run code in 300+ PHP versions simultaneously
<?php // Set demo vars $year = 2012; $months = array(10,11,12); $days = array(01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30); foreach($months AS $month) foreach($days AS $day) if((int)$year && (int)$month && (int)$day && rand(0,100)>15) // Randomize dates, withdraw 15% of them $datesWS[] = new DateTime(implode('-',array($year,$month,$day))); // Push DateTime object to the WebService array // Sort dates usort($datesWS, function ($a, $b){ return $a == $b ? 0 : $a > $b ? 1 : -1; }); $dateIni = count($datesWS)>0 ? reset($datesWS) : 0; // Get first date $dateEnd = count($datesWS)>0 ? end($datesWS) : 0; // Get last date $interval = new DateInterval('P1D'); // Set date interval as 1 day // Generate dates range and Transform iterator to array $datesRange = iterator_to_array(new DatePeriod($dateIni, $interval, $dateEnd->modify( '+1 day' ))); // Get excluded dates $excludeDates = array_udiff($datesRange, $datesWS, function ($a, $b) { return $a == $b ? 0 : 1; }); foreach($datesRange AS $date) { echo $date->format('d/m/Y'); echo in_array($date->format('d/m/Y'),array_values(array_map(function($obj){ return $obj->format('d/m/Y'); },$datesWS)))? " existe /n" : " exclusión /n"; } // Print array(objects) as array(strings) var_dump(array_values(array_map(function($obj){ return $obj->format('d/m/Y'); },$datesWS))); var_dump(array_values(array_map(function($obj){ return $obj->format('d/m/Y'); },$datesRange))); var_dump(array_values(array_map(function($obj){ return $obj->format('d/m/Y'); },$excludeDates))); ?>

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
7.2.90.0130.00614.26
7.2.80.0380.00614.27
7.2.70.0290.01114.88
7.2.60.1430.00314.56
7.2.50.0160.00314.57
7.2.40.0130.01014.20
7.2.30.0000.01214.25
7.2.20.0100.01014.33
7.2.10.2340.00714.45
7.2.00.0670.01014.63
7.1.210.0110.01113.29
7.1.200.0160.00313.51
7.1.190.2600.01013.30
7.1.180.1610.01013.60
7.1.170.1560.00313.20
7.1.160.0120.00613.52
7.1.150.0520.00613.26
7.1.140.0100.00713.36
7.1.130.0780.00313.73
7.1.120.0130.00313.54
7.1.110.0140.00713.52
7.1.100.0070.01413.64
7.1.90.0180.00013.38
7.1.80.1070.00313.25
7.1.70.1010.00313.30
7.1.60.0320.00631.63
7.1.50.1330.00031.70
7.1.40.1330.02031.57
7.1.30.0310.01431.65
7.1.20.0870.00331.61
7.1.10.0650.00313.52
7.1.00.0930.00713.78
7.0.310.0160.00712.91
7.0.300.0980.00312.82
7.0.290.0160.00013.21
7.0.280.0050.00512.86
7.0.270.0120.00613.19
7.0.260.0300.00313.12
7.0.250.0260.00612.97
7.0.240.0740.01013.44
7.0.230.0920.00612.81
7.0.220.0130.00013.08
7.0.210.0850.00713.10
7.0.200.0310.00713.14
7.0.190.0070.00713.39
7.0.180.0070.01113.48
7.0.170.0100.00713.34
7.0.160.0080.00413.47
7.0.150.0880.00312.77
7.0.140.0030.01313.06
7.0.130.0070.01113.11
7.0.120.1380.00713.00
7.0.110.1390.01012.99
7.0.100.1290.00712.95
7.0.90.0890.00913.02
7.0.80.0060.00613.05
7.0.70.0270.01012.86
7.0.60.0860.00313.16
7.0.50.1040.01012.93
7.0.40.0220.00313.08
7.0.30.0120.00612.88
7.0.20.0860.00313.07
7.0.10.0160.00912.87
7.0.00.0170.01013.16
5.6.300.0190.01314.30
5.6.290.0180.02214.78
5.6.280.0110.02714.91
5.6.270.0120.01814.67
5.6.260.0090.02214.66
5.6.250.0110.02314.81
5.6.240.0210.01314.83
5.6.230.0130.01714.88
5.6.220.0190.01514.80
5.6.210.0040.02714.65
5.6.200.0200.01714.82
5.6.190.0080.02514.82
5.6.180.0160.02214.43
5.6.170.0140.02214.73
5.6.160.0200.01014.77
5.6.150.0200.01414.58
5.6.140.0070.03314.76
5.6.130.0240.01614.71
5.6.120.0150.01814.99
5.6.110.0310.00414.67
5.6.100.0170.01914.80
5.6.90.0220.01514.55
5.6.80.0320.00514.67
5.6.70.0340.00414.65
5.6.60.0150.01514.62
5.6.50.0200.01714.78
5.6.40.0160.01014.33
5.6.30.0090.02214.68
5.6.20.0120.01814.78
5.6.10.0120.01814.61
5.6.00.0210.01414.88
5.5.380.0110.02211.24
5.5.370.0080.01911.71
5.5.360.0120.01311.46
5.5.350.0140.02111.63
5.5.340.0190.01911.61
5.5.330.0180.00911.65
5.5.320.0150.01711.48
5.5.310.0170.00911.60
5.5.300.0200.01311.40
5.5.290.0130.01311.72
5.5.280.0110.01611.57
5.5.270.0110.01811.45
5.5.260.0120.02311.45
5.5.250.0110.01710.99
5.5.240.0100.01911.51
5.5.230.0160.00811.62
5.5.220.0050.02111.47
5.5.210.0180.01211.41
5.5.200.0190.00811.58
5.5.190.0080.01411.58
5.5.180.0120.01311.31
5.5.170.0190.01514.75
5.5.160.0210.00611.28
5.5.150.0180.00911.54
5.5.140.0220.01911.60
5.5.130.0180.00911.55
5.5.120.0110.01511.59
5.5.110.0240.00411.38
5.4.450.0150.01011.38
5.4.440.0070.02211.57
5.4.430.0200.00811.44
5.4.420.0160.01611.20
5.4.410.0160.01311.42
5.4.400.0230.01011.44
5.4.390.0200.00911.52
5.4.380.0180.00911.54
5.4.370.0100.02011.52
5.4.360.0120.01511.27
5.4.350.0120.01411.39
5.4.340.0030.02011.41
5.4.330.0150.01211.27
5.4.320.0100.01311.09
5.4.310.0110.01911.02
5.4.300.0150.00911.58
5.4.290.0100.01911.46
5.4.280.0080.01611.41
5.4.270.0100.01311.25
5.4.260.0210.00411.52
5.3.290.0080.01711.11

preferences:
138.78 ms | 1398 KiB | 7 Q