X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FUtils%2FArray.php;h=a9d6cdd07ef50c53c1d8393adf9aa1a772b23222;hb=e0f29b28c437b9e490a81091360bf21ea24f46f2;hp=42b355f3d07a31c21f74172369874ad1ed470941;hpb=dbf3ef22cc2675668c2fff2d851f692d6f048b11;p=civicrm-core.git diff --git a/CRM/Utils/Array.php b/CRM/Utils/Array.php index 42b355f3d0..a9d6cdd07e 100644 --- a/CRM/Utils/Array.php +++ b/CRM/Utils/Array.php @@ -1,7 +1,7 @@ ['email' => ['location' => 'llama']] + * + * @param $path + * @param $value + * @param array $source + * + * @return array + */ + public static function recursiveBuild($path, $value, $source = []) { + $arrayKey = array_shift($path); + // Recurse through array keys + if ($path) { + if (!isset($source[$arrayKey])) { + $source[$arrayKey] = []; + } + $source[$arrayKey] = self::recursiveBuild($path, $value, $source[$arrayKey]); + } + // Final iteration + else { + $source[$arrayKey] = $value; + } + return $source; + } + }