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_r($arr); print_r(getValueInNestedArray($arr, 'a', null)); print_r(getValueInNestedArray($arr, 'a.b.c.d', null)); print_r(getValueInNestedArray($arr, 'e.f.g', null)); ?>
Output for git.master, git.master_jit, rfc.property-hooks
Warning: Undefined array key "a" in /in/hJUJX on line 8 Warning: Undefined array key "b" in /in/hJUJX on line 8 Warning: Undefined array key "c" in /in/hJUJX on line 8 Warning: Undefined array key "d" in /in/hJUJX on line 8 Array ( [a] => Array ( [b] => Array ( [c] => Array ( [d] => e ) ) ) ) Array ( [b] => Array ( [c] => Array ( [d] => e ) ) ) Warning: Undefined array key "e" in /in/hJUJX on line 22 Warning: Undefined array key "f" in /in/hJUJX on line 22 Warning: Undefined array key "g" in /in/hJUJX on line 22

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
34.06 ms | 403 KiB | 8 Q