多组信息,不同的组合,一共可以有哪些组合呢, 这里给大家一个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>
源代码下载:多重数组组合