3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Recursion { public static function recursion($information, $keylist) { $global_array = array(); $keys = explode($keylist, ","); foreach($keys as $individual_key) $global_array = self::recursionLevelTwo($information, $individual_key); return $global_array; } private static function recursionLevelTwo($array, $key) { if(count($array) == 0) return; $global_array = array(); foreach($array as $k => $v) { if($k == $key) if($array[$k] != self::$asterisk) $array[$k] = self::$asterisk; else { if(is_array($v)) { $temp_array = self::recursionLevelTwo($v, $key); array_push($global_array, $temp_array); } } } return $global_array; } private static $asterisk = "**"; } $information = array("login" => "someUsername", "password" => "somePassword", "card_pin"=>"card_1234", "pin"=>"pin_356", "iin" => "iin_123", "shipping" => array("telephone" => "telephone_998"), "cardnumber" => "card_number_876", "customer_id" => "customer_654", "telephone" => "someOtherTelephoneNumber555"); $list = "login,customer_id"; print_r($information); echo PHP.EOL; echo PHP.EOL; $global_array = Recursion::recursion($information, $list); print_r($global_array);

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)
5.6.150.0130.03718.16
5.6.140.0130.04018.18
5.6.130.0000.04718.21
5.6.120.0100.04721.00
5.6.110.0070.05020.90
5.6.100.0100.07721.11
5.6.90.0270.04320.97
5.6.80.0170.07020.45
5.5.300.0000.04018.01
5.5.290.0070.03717.98
5.5.280.0100.07320.80
5.5.270.0130.06020.88
5.5.260.0130.07320.98
5.5.250.0100.05020.59
5.5.240.0200.07320.16

preferences:
23.45 ms | 401 KiB | 5 Q