return $array;
}
+ /**
+ * Append the value to the array using the key provided.
+ *
+ * e.g if value is 'llama' & path is [0, 'email', 'location'] result will be
+ * [0 => ['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;
+ }
+
}