original_string: protected function _array_merge_recursive_distinct ($array) {
  		$arrays = func_get_args();
  		$base = array_shift($arrays);
  		if (!is_array($base)) $base = empty($base) ? [] : [$base];
  		foreach ($arrays as $append) {
  			if (!is_array($append)) $append = [$append];
  			foreach ($append as $key => $value) {
  				if (!array_key_exists($key, $base)) {
  					$base[$key] = $append[$key];
  					continue;
  				}
  				if (is_array($value) or is_array($base[$key])) {
  					$base[$key] = $this->_array_merge_recursive_distinct($base[$key], $append[$key]);
  				} else {
  					$base[$key] = $value;
  				}
  			}
  		}
  		return $base;
  	}
code: protected function _array_merge_recursive_distinct ($array) {
  		$arrays = func_get_args();
  		$base = array_shift($arrays);
  		if (!is_array($base)) $base = empty($base) ? [] : [$base];
  		foreach ($arrays as $append) {
  			if (!is_array($append)) $append = [$append];
  			foreach ($append as $key => $value) {
  				if (!array_key_exists($key, $base)) {
  					$base[$key] = $append[$key];
  					continue;
  				}
  				if (is_array($value) or is_array($base[$key])) {
  					$base[$key] = $this->_array_merge_recursive_distinct($base[$key], $append[$key]);
  				} else {
  					$base[$key] = $value;
  				}
  			}
  		}
  		return $base;
  	}
code_tokens: protected function _array_merge_recursive_distinct ( $ array ) { $ arrays = func_get_args ( ) ; $ base = array_shift ( $ arrays ) ; if ( ! is_array ( $ base ) ) $ base = empty ( $ base ) ? [ ] : [ $ base ] ; foreach ( $ arrays as $ append ) { if ( ! is_array ( $ append ) ) $ append = [ $ append ] ; foreach ( $ append as $ key => $ value ) { if ( ! array_key_exists ( $ key , $ base ) ) { $ base [ $ key ] = $ append [ $ key ] ; continue ; } if ( is_array ( $ value ) or is_array ( $ base [ $ key ] ) ) { $ base [ $ key ] = $ this -> _array_merge_recursive_distinct ( $ base [ $ key ] , $ append [ $ key ] ) ; } else { $ base [ $ key ] = $ value ; } } } return $ base ; }
docstring: Merges any number of arrays.
  
  array_merge_recursive() does indeed merge arrays, but it converts values with duplicate keys to arrays rather than overwriting the value in the first array with the duplicate value in the second array, as array_merge does.
  @param	array	$array	Any number of arrays.
  @return	array
docstring_tokens: Merges any number of arrays .