<?php
function P(array $sources)
{
$result=array();
$cache=array();
foreach($sources as $node)
{
$cache=$result;
$result=array();
foreach($node as $item)
{
if(empty($cache))
{
$result[]=array($item);
}
else
{
foreach($cache as $line)
{
$line[]=$item;
$result[]=$line;
}
}
}
}
return $result;
}
$result=P(array( array('a', 'b'), array('a', 'b'), array('a', 'b'), array('a'), array('a'), array('a') ));
print_r(array_map(function($a){return implode(",",$a);},$result));
preferences:
41.79 ms | 402 KiB | 5 Q