<?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