elegant php array combinations algorithm
<?
//by Shimon Dookin
function get_combinations(&$lists,&$result,$stack=array(),$pos=0)
{
$list=$lists[$pos];
if(is_array($list))
foreach($list as $word)
{
array_push($stack,$word);
if(count($lists)==count($stack))
$result[]=$stack;
else
get_combinations($lists,$result,$stack,$pos+1);
array_pop($stack);
}
}
$wordlists= array( array("shimon","doodkin") , array("php programmer","sql programmer","mql metatrader programmer") );
get_combinations($wordlists,$combinations);
echo '<xmp>';
print_r($combinations);
?>