PHP数组多重组合

时间:2019-08-09 17:28:06 类型:PHP
字号:    

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