// Created on savesnippets.com ยท https://savesnippets.com/JgHgAuG9vx8APE $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