string(2) "64" } [9] => array(2) { [0] => string("/> string(2) "64" } [9] => array(2) { [0] => string(">
求数组组合算法
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> array(2) { [8] => array(2) { [0] => string(2) "63" [1] => string(2) "64" } [9] => array(2) { [0] => string(2) "78" [1] => string(2) "79" } }
$ar = array( 8 => array('63', '64'), 9 => array('78', '79'), ); print_r(Descartes($ar)); function Descartes() { $t = func_get_args(); if(func_num_args() == 1) return call_user_func_array( __FUNCTION__, $t[0] ); $a = array_shift($t); if(! is_array($a)) $a = array($a); $a = array_chunk($a, 1); do { $r = array(); $b = array_shift($t); if(! is_array($b)) $b = array($b); foreach($a as $p) foreach(array_chunk($b, 1) as $q) $r[] = array_merge($p, $q); $a = $r; }while($t); return $r; } <div class="clear"> </div>