3v4l.org

run code in 300+ PHP versions simultaneously
<?php function buildVirtualData($data) { if (is_array($data)) { //check if is an array Walk trough to rebuild $temp = []; foreach ($data as $key => $value) { $temp[$key] = buildVirtualData($value); } return reduArray($temp); } elseif (valJson($data)) { //check if is an JSON, Walk through to rebuild as an array $json_obj = json_decode($data, true); foreach ($json_obj as $key1 => $json_sub_obj) { foreach ($json_sub_obj as $key2 => $value2) { if (is_array($value2)) { $temp = []; foreach ($value2 as $keyof => $valueof) { $temp[$keyof] = buildVirtualData($valueof); } $json_obj[$key1][$key2] = $temp; } else { if ('true' === $value2 || true === $value2) { $json_obj[$key1][$key2] = true; } elseif ('false' === $value2 || false === $value2) { $json_obj[$key1][$key2] = false; } else { $json_obj[$key1][$key2] = $value2; } } } return reduArray($json_obj); } } else { // if it is not an array or a JSON; evaluate the type if it is text and meets possible boolean values if ('true' === $data || true === $data) { $data = true; } elseif ('false' === $data || false === $data) { $data = false; } return $data; } } function valJson($var) //JSON Validator { if (!is_array($var)) { return ((json_decode($var) != null) && (is_object(json_decode($var)) || is_array(json_decode($var)))) ? true : false; } else { return false; } } function reduArray($array) //array Reductor { $result = $array; if (is_array($array)) { $check = true; foreach ($array as $key => $value) { if (!is_array($value)) { $check = false; break; } } if ($check) { $result = array_reduce($array, 'array_merge', []); } } return $result; } //Example Data //$_POST=[]; //$_POST['JsonData']='[{"firstname":""},{"lastname":""},{"email":""},{"countryCode":""},{"phone":""},{"i_signup_password":""},{"i_signup_password_rep":""},{"email":""},{"i_signin_password":""},{"form":"d-sys-login"},{"process":"e-signin"},{"form":"d-sys-login"},{"process":"e-signin"},{"form":"d-sys-login"},{"process":"e-signin"},{"form":"d-sys-login"},{"process":"e-signin"},{"form":"d-sys-login"},{"process":"e-signin"},{"form":"d-sys-login"},{"process":"e-signin"},{"form":"d-sys-login"},{"process":"e-signin"},{"form":"d-sys-login"},{"process":"e-signin"},{"form":"d-sys-login"},{"process":"e-signin"},{"form":"d-sys-login"},{"process":"e-signin"},{"form":"d-sys-login"},{"process":"e-signin"}]'; //$_POST['otherdata']='otherdata'; //Execution of Function hover $_POST Variable. //$_POST=buildVirtualData($_POST); //$_POST=reduArray($_POST); //echo var_dump($_POST); $walter = reduArray( buildVirtualData( $_POST = [ 'JsonData' => '[{"firstname":""},{"lastname":""},{"email":""},{"countryCode":""},{"phone":""},{"i_signup_password":""},{"i_signup_password_rep":""},{"email":""},{"i_signin_password":""},{"form":"d-sys-login"},{"process":"e-signin"},{"form":"d-sys-login"},{"process":"e-signin"},{"form":"d-sys-login"},{"process":"e-signin"},{"form":"d-sys-login"},{"process":"e-signin"},{"form":"d-sys-login"},{"process":"e-signin"},{"form":"d-sys-login"},{"process":"e-signin"},{"form":"d-sys-login"},{"process":"e-signin"},{"form":"d-sys-login"},{"process":"e-signin"},{"form":"d-sys-login"},{"process":"e-signin"},{"form":"d-sys-login"},{"process":"e-signin"},{"form":"d-sys-login"},{"process":"e-signin"}]' ] ) ); $mick = []; foreach ($_POST as $key => $value) { if ($key !== 'JsonData') { $mick[$key] = $value; } else { $mick = array_merge($mick, ...json_decode($value, true)); } } var_export($walter); echo "\n---\n"; var_export($mick);

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)
8.3.60.0110.00418.55
8.3.50.0080.00618.10
8.3.40.0150.00019.02
8.3.30.0090.00618.81
8.3.20.0080.00024.18
8.3.10.0080.00024.66
8.3.00.0030.00626.16
8.2.180.0060.01025.92
8.2.170.0110.00718.96
8.2.160.0100.00322.96
8.2.150.0050.00325.66
8.2.140.0090.00024.66
8.2.130.0080.00026.16
8.2.120.0040.00420.75
8.2.110.0100.00022.14
8.2.100.0070.00417.95
8.2.90.0000.00917.75
8.2.80.0030.00518.73
8.2.70.0040.00417.75
8.2.60.0030.00617.63
8.2.50.0000.00917.59
8.2.40.0030.00618.22
8.2.30.0060.00318.25
8.2.20.0060.00318.10
8.2.10.0000.00819.44
8.2.00.0040.00419.25
8.1.280.0090.00925.92
8.1.270.0080.00023.99
8.1.260.0000.00826.35
8.1.250.0040.00428.09
8.1.240.0070.00722.19
8.1.230.0090.00319.08
8.1.220.0000.00817.76
8.1.210.0040.00418.77
8.1.200.0060.00317.38
8.1.190.0030.00617.23
8.1.180.0030.00618.10
8.1.170.0030.00518.64
8.1.160.0060.00318.99
8.1.150.0000.00718.94
8.1.140.0000.00818.90
8.1.130.0000.00720.25
8.1.120.0040.00417.55
8.1.110.0050.00317.49
8.1.100.0050.00217.55
8.1.90.0000.01017.52
8.1.80.0040.00717.49
8.1.70.0000.00717.52
8.1.60.0000.00917.54
8.1.50.0040.00417.57
8.1.40.0030.00517.47
8.1.30.0060.00617.60
8.1.20.0000.00917.68
8.1.10.0000.00817.51
8.1.00.0050.00317.48
8.0.300.0000.00720.29
8.0.290.0070.00316.75
8.0.280.0000.00818.50
8.0.270.0000.00716.79
8.0.260.0000.00720.30
8.0.250.0050.00316.97
8.0.240.0030.00317.04
8.0.230.0000.00717.04
8.0.220.0020.00516.89
8.0.210.0040.00416.91
8.0.200.0000.00717.02
8.0.190.0030.00516.94
8.0.180.0040.00416.99
8.0.170.0030.00516.80
8.0.160.0040.00416.91
8.0.150.0000.00716.88
8.0.140.0110.00016.75
8.0.130.0050.00013.38
8.0.120.0000.00816.90
8.0.110.0000.00816.90
8.0.100.0000.00816.82
8.0.90.0000.00716.93
8.0.80.0050.01216.90
8.0.70.0000.00716.84
8.0.60.0070.00016.85
8.0.50.0070.00016.81
8.0.30.0030.01316.91
8.0.20.0130.00817.18
8.0.10.0040.00417.13
8.0.00.0150.01216.91
7.4.330.0000.00515.55
7.4.320.0000.00616.58
7.4.300.0000.00716.55
7.4.290.0040.00416.66
7.4.280.0040.00416.61
7.4.270.0000.01116.66
7.4.260.0000.00716.63
7.4.250.0070.00016.61
7.4.240.0030.00316.48
7.4.230.0030.00316.46
7.4.220.0050.00216.68
7.4.210.0070.01016.59
7.4.200.0000.00816.74
7.4.130.0110.01116.71
7.4.120.0090.01516.57
7.4.110.0090.00916.54
7.4.100.0140.00416.52
7.4.90.0180.00516.55
7.4.80.0060.01316.30
7.4.70.0070.01116.49
7.4.60.0060.01016.45
7.4.50.0100.00716.55
7.4.40.0090.00916.67
7.4.30.0080.00916.17
7.4.20.0140.00416.48
7.4.10.0110.00516.67
7.4.00.0110.00716.70
7.3.330.0000.00716.27
7.3.320.0030.00313.29
7.3.310.0030.00316.32
7.3.300.0000.00716.29
7.3.290.0060.00916.42
7.3.280.0070.01316.43
7.3.260.0140.00516.51
7.3.230.0060.01216.73
7.3.210.0110.01116.56
7.3.200.0180.00016.32
7.3.190.0090.00916.49
7.3.180.0130.00816.41
7.3.170.0080.01216.34
7.3.160.0100.00716.47
7.3.150.0060.01216.59
7.3.140.0100.00716.38
7.3.130.0120.00416.61
7.3.120.0080.01016.33
7.3.110.0060.01116.53
7.3.100.0180.00416.52
7.3.90.0140.00316.60
7.3.80.0120.00616.41
7.3.70.0110.00716.47
7.3.60.0130.00316.46
7.3.50.0110.00616.39
7.3.40.0090.00916.34
7.3.30.0040.01316.37
7.3.20.0160.00316.40
7.3.10.0110.00816.49
7.3.00.0070.01116.48
7.2.330.0160.00316.58
7.2.320.0070.01116.58
7.2.310.0120.00916.29
7.2.300.0130.00716.43
7.2.290.0110.00716.43
7.2.280.0080.01116.68
7.2.270.0090.00916.43
7.2.260.0090.00916.76
7.2.250.0080.01116.54
7.2.240.0040.01416.43
7.2.230.0080.01016.93
7.2.220.0130.00516.67
7.2.210.0090.00916.40
7.2.200.0090.00816.76
7.2.190.0180.00016.69
7.2.180.0120.00616.58
7.2.170.0100.00716.55
7.2.160.0080.00816.74
7.2.150.0110.00616.60
7.2.140.0060.01216.71
7.2.130.0110.00816.72
7.2.120.0370.01416.52
7.2.110.0110.00716.56
7.2.100.0040.01516.76
7.2.90.0040.01516.73
7.2.80.0160.00616.62
7.2.70.0160.01016.60
7.2.60.0120.00616.73
7.2.50.0140.00616.60
7.2.40.0080.01116.68
7.2.30.0100.01016.69
7.2.20.0100.00716.55
7.2.10.0060.01316.79
7.2.00.0000.01816.68

preferences:
90.37 ms | 401 KiB | 5 Q