<?php
function deepMerge(array $base, array $override): array {
foreach ($override as $key => $val) {
if (is_array($val) && isset($base[$key]) && is_array($base[$key]) && !array_is_list($val)) {
$base[$key] = deepMerge($base[$key], $val);
} else {
$base[$key] = $val;
}
}
return $base;
}
$defaults = ['db'=>['host'=>'localhost','port'=>3306],'debug'=>false];
$env = ['db'=>['host'=>'prod.example.com'],'debug'=>true];
print_r(deepMerge($defaults, $env));
// db => [host => prod.example.com, port => 3306], debug => true
Create a free account and build your private vault. Share publicly whenever you want.