<?php
function recombine
($right, $left = array()) {
echo implode(' ', $left).PHP_EOL
; // trace while($value = array_shift($right)) // walk through $right like queue (mutable!) recombine
($right, array_merge(array($value), $left)); // go deep but put value to left};
recombine
(array(1, 2, 3, 4));
PD9waHAKZnVuY3Rpb24gcmVjb21iaW5lKCRyaWdodCwgJGxlZnQgPSBhcnJheSgpKQp7CgllY2hvIGltcGxvZGUoJyAnLCAkbGVmdCkuUEhQX0VPTDsgLy8gdHJhY2UKCXdoaWxlKCR2YWx1ZSA9IGFycmF5X3NoaWZ0KCRyaWdodCkpIC8vIHdhbGsgdGhyb3VnaCAkcmlnaHQgbGlrZSBxdWV1ZSAobXV0YWJsZSEpCgkJcmVjb21iaW5lKCRyaWdodCwgYXJyYXlfbWVyZ2UoYXJyYXkoJHZhbHVlKSwgJGxlZnQpKTsgLy8gZ28gZGVlcCBidXQgcHV0IHZhbHVlIHRvIGxlZnQKfTsKCnJlY29tYmluZShhcnJheSgxLCAyLCAzLCA0KSk7Cg==