- var_dump: documentation ( source)
- array_reduce: documentation ( source)
- array_merge: documentation ( source)
<?php
class Foo {
public function flatten()
{
$data = func_get_args();
return array_reduce($data, function($c, $a){
return array_merge($c, is_array($a) ?$this->flatten(...$a) : [$a]);
}, []) ;
}
}
var_dump((new Foo())->flatten(1));
var_dump((new Foo())->flatten());
var_dump((new Foo())->flatten(1, [2], [3, [4,5]]));