多組信息,不同的組合,一共可以有哪些組合呢, 這里給大家一個PHP數(shù)組組合實(shí)例分享
結(jié)果如下:
//笛卡爾乘積 組合原理 將二維數(shù)組進(jìn)行多重組合
function arrToCombination($arr) {
$next = array_pop($arr); //刪除數(shù)組中的最后一個元素, 返回刪除的元素
while($arr) {
$t = array();
$pre = array_pop($arr); //前一個數(shù)組
if(! is_array($pre)) $pre = array($pre);
foreach($pre as $pre_v) {
foreach($next as $next_v) $t[] = array_merge(array($pre_v), is_array($next_v) ? $next_v : array($next_v));
//array_merge 把兩個數(shù)組合并為一個數(shù)組
}
$next = $t;
}
return $next;
}
$arr = array(
["小明","小紅"],
["語文","數(shù)學(xué)","英語"],
["王老師","陳老師"]
);
$result = arrToCombination($arr);
$str = "";
foreach ($result as $key => $value) {
$str .= "<tr>";
foreach ($value as $v) {
$str .= "<td>$v</td>";
}
$str .= "<tr>";
}
<table> <tr> <th>學(xué)生</th> <th>課程</th> <th>老師</th> </tr> <?php echo $str; ?> </table>
源代碼下載:多重數(shù)組組合
