Esempio n. 1
0
function array_merge_deep_array($arrays)
{
    $result = array();
    foreach ($arrays as $array) {
        foreach ($array as $key => $value) {
            // Recurse when both values are arrays.
            if (isset($result[$key]) && is_array($result[$key]) && is_array($value)) {
                $result[$key] = array_merge_deep_array(array($result[$key], $value));
            } else {
                $result[$key] = $value;
            }
        }
    }
    return $result;
}
Esempio n. 2
0
function arrayMergeDeepArray($arrays)
{
    $result = [];
    foreach ($arrays as $array) {
        foreach ($array as $key => $value) {
            // Renumber integer keys as array_merge_recursive() does. Note that PHP
            // automatically converts array keys that are integer strings (e.g., '1')
            // to integers.
            if (is_integer($key)) {
                $result[] = $value;
            } elseif (isset($result[$key]) && is_array($result[$key]) && is_array($value)) {
                // Recurse when both values are arrays.
                $result[$key] = array_merge_deep_array(array($result[$key], $value));
            } else {
                // Otherwise, use the latter value, overriding any previous value.
                $result[$key] = $value;
            }
        }
    }
    return $result;
}
Esempio n. 3
0
 /** 
  * Helper attaches children onto menu
  */
 private function attach_link(&$menu_structure, $menu_depth_stack, $link_obj)
 {
     $merge_arr = [];
     $this->insert_deep($merge_arr, $menu_depth_stack, $link_obj);
     $menu_structure = array_merge_deep_array([$menu_structure, $merge_arr]);
 }