php N组数据之间的组合,不能有重复的,实例数据和效果如下,PHP程序如何排列出来?

辣条拌鱼翅 发布于 2016/08/24 13:55
阅读 419
收藏 0
PHP

假如数组如下:

规格=>多门,单门,双门,
时间=>3年内,3年以上,
成色=>无锈损,有锈损,
故障机-运行情况=>正常,非正常,

通过程序达到如下效果:  怎么样可以达到这样的效果 求解

加载中
0
辣条拌鱼翅
辣条拌鱼翅

问题大致找到答案了。   笛卡尔乘积算法

PHP代码:

$arr = array(  
    'a'=>array('a1','a2','a3'),  
    'b'=>array('b1','b2','b3'),  
    'c'=>array('c1','c2','c3'),  
  
    //..........多行......  
);  
  
fun($arr);  
//print_r($res);  
  
echo '<table width="150px" border="1">';  
$j=0;  
    echo "<tr>";  
    echo "<td>序号</td>";  
    foreach($arr as $k=>$v)  
    {         
        echo "<td>".$k."</td>";  
    }     
    echo "</tr>";  
foreach($res as $v)  
{  
    echo "<tr>";  
    $i=0;  
    $j++;  
    echo "<td>".$j."</td>";  
    foreach($arr as $value)  
    {         
        echo "<td>".$v[$i]."</td>";  
        $i++;  
    }     
    echo "</tr>";  
}  
echo '</table>';  
  
function fun($arr, $tmp = array())  
{  
      
    foreach(array_shift($arr) AS $v)  
    {  
        $tmp[]  = $v;         
        if($arr)  
        {  
            fun($arr, $tmp);  
        }  
        else  
        {  
            $GLOBALS["res"][]   = $tmp;  
        }  
        array_pop($tmp);  
    }  
}



返回顶部
顶部