3v4l.org

run code in 300+ PHP versions simultaneously
<?php function setKey($session_keys, $value) { $current_key = ''; $counter = 0; $prev_step = $_SESSION; try { $session_keys_array = explode(':', $session_keys); krsort($session_keys_array); $c = count($session_keys_array); $count = 0; $arr = array(); foreach ($session_keys_array as $key) { $count++; switch ($count) { case 1: $arr[$key] = $value; break; case ($count > 1 AND $count < $c): $arr[$key] = $arr; break; case $c: $_SESSION[$key] = $arr; break; } } } catch (Exception $e) { //TODO:log notice if Session[currentKey] is not an array return false; } return array_key_exists($key,$prev_step) && eval('!empty($_SESSION' . $current_key . ');'); } $_SESSION['1']['2']['3'] = 'zzzz'; setKey('1:2:3', 77); echo $_SESSION['1']['2']['3']; print_f($_SESSION);

preferences:
60.31 ms | 402 KiB | 5 Q