holder.=implode($delim,$item); } else { $this->holder.=$item.$delim; } } function join() { $args = func_get_args(); $delim = $args[0]; $data = array_splice($args,1); array_walk_recursive(&$data,array(&$this,'concat'),$delim); return substr($this->holder,0,-1); } } $pj = new PerlJoin(); echo $pj->join("%","foo","bar","baz","quux",array("dead",array("aede","uuxa"),"beef",array("joo",array("yoo")),array("fofo")))."\n"; ?>