/** * Treats arguments as an one-dimensional array * @example Converting a multi-dimensional array into one-dimensional * ```php * $var = array ( * 'A', * array ( * 'B', * array ( * 'C' * ), * 'D' * ), * 'E' * ); * var_export( arr::flat($var) ); * ``` * @example Converting multiple arguments into an one-dimentional array * ```php * $r = arr::flat('A', 'B', array ('C', 'D'), 'E', 'F'); * var_export( $r ); * ``` * @param mixed $X Any number of parameters are accepted * @return array */ static function flat($X) { $r = array(); $args = func_num_args() > 1 ? func_get_args() : (type::is_iterable($X) ? $X : array($X)); foreach ($args as $iArg) { if (is_array($iArg)) { $r = array_merge($r, arr::flat($iArg)); } else { $r[] = $iArg; } } return $r; }