3v4l.org

run code in 300+ PHP versions simultaneously
<?php function setValueInNestedArray(&$array, $path, $value, $delimiter = '.'){ $pathSegments = explode($delimiter, $path); $currentNode = &$array; foreach($pathSegments as $pathSegment) { if(!is_array($currentNode[$pathSegment])) { $currentNode[$pathSegment] = []; } $currentNode = &$currentNode[$pathSegment]; } $currentNode = $value; } function getValueInNestedArray($array, $path, $defaultValue, $delimiter = '.'){ $pathSegments = explode($delimiter, $path); $pathExists = true; $currentNode = &$array; foreach($pathSegments as $pathSegment) { if(is_array($currentNode[$pathSegment])) { $currentNode = &$currentNode[$pathSegment]; } else { $pathExists = false; } } return $pathExists ? $currentNode : $defaultValue; } $arr =[]; setValueInNestedArray($arr, 'a.b.c.d', 'e'); print(1); print_r($arr); print(2); print_r(getValueInNestedArray($arr, 'a', null)); print(3); print_r(getValueInNestedArray($arr, 'a.b.c.d', null)); print(4); print_r(getValueInNestedArray($arr, 'e.f.g', null)); ?>

preferences:
39.97 ms | 402 KiB | 5 Q