- var_dump: documentation ( source)
- array_merge_recursive: documentation ( source)
<?php
function initValueIfNotSet($target, $levels = array()) {
//$merge = ['WorkRecord' => ['Hours' => '']];
$merge = [];
for ($i = count($levels) - 1; $i >= 0; $i--) {
$current = $levels[$i];
$merge = empty($merge) ? [$current => ''] : [$current => $merge];
}
//return $target + $merge;
return array_merge_recursive($target, $merge);
}
$user = ['Details' => ['Name' => 'Kokot'], 'WorkRecord' => ['Time' => ['Minutes' => 2]]];
var_dump($user);
$user = initValueIfNotSet($user, ['WorkRecord', 'Time', 'Hours']);
var_dump($user);