多组信息,不同的组合,一共可以有哪些组合呢, 这里给大家一个PHP数组组合实例分享
结果如下:
//笛卡尔乘积 组合原理 将二维数组进行多重组合
function arrToCombination($arr) {
$next = array_pop($arr); //删除数组中的最后一个元素, 返回删除的元素
while($arr) {
$t = array();
$pre = array_pop($arr); //前一个数组
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 把两个数组合并为一个数组
}
$next = $t;
}
return $next;
}
$arr = array(
["小明","小红"],
["语文","数学","英语"],
["王老师","陈老师"]
);
$result = arrToCombination($arr);
$str = "";
foreach ($result as $key => $value) {
$str .= "<tr>";
foreach ($value as $v) {
$str .= "<td>$v</td>";
}
$str .= "<tr>";
}
<table> <tr> <th>学生</th> <th>课程</th> <th>老师</th> </tr> <?php echo $str; ?> </table>
源代码下载:多重数组组合
