
<?php
$list [] = array("红", "黄", "蓝");
$list [] = array("大", "小");
$list [] = array("1G", "2G", "3G", "5G");
$list [] = array("aa", "bb", "cc", "dd");
$list [] = array("1", "2", "3", "4");
class ArrCombine
{
function getCombine($list)
{
$rs = [];
foreach ($list as $value) {
$rs = array_merge($rs, $this->getSulie($list, $value, 1));
}
return $rs;
}
function getSulie($list, $content, $deep)
{
$rows = [];
$i = 0;
if ($deep > count($list)) {
return;
}
foreach ($list as $k => $v) {
if ($i == $deep) {
foreach ($list[$k] as $vv) {
$row = array_merge($content, [$vv]);
if ($deep == count($list) - 1) {
$rows[] = $rows;
} else {
$rows = array_merge($rows, $this->getSulie($list, $row, $deep + 1));
}
}
break;
}
$i++;
}
return $rows;
}
}
$class = new ArrCombine();
var_dump($class->getCombine($list));
结果
array(384) {
[0] =>
array(5) {
[0] =>
string(3) "红"
[1] =>
string(3) "大"
[2] =>
string(2) "1G"
[3] =>
string(2) "aa"
[4] =>
string(1) "1"
}
[1] =>
array(5) {
[0] =>
string(3) "红"
[1] =>
string(3) "大"
[2] =>
string(2) "1G"
[3] =>
string(2) "aa"
[4] =>
string(1) "2"
}
[2] =>
array(5) {
[0] =>
string(3) "红"
[1] =>
string(3) "大"
[2] =>
string(2) "1G"
[3] =>
string(2) "aa"
[4] =>
string(1) "3"
}
[3] =>
array(5) {
[0] =>
string(3) "红"
[1] =>
string(3) "大"
[2] =>
string(2) "1G"
[3] =>
string(2) "aa"
[4] =>
string(1) "4"
}
[4] =>
array(5) {
[0] =>
string(3) "红"
[1] =>
string(3) "大"
[2] =>
string(2) "1G"
[3] =>
string(2) "bb"
[4] =>
string(1) "1"
}
[5] =>
array(5) {
[0] =>
string(3) "红"
[1] =>
string(3) "大"
[2] =>
string(2) "1G"
[3] =>
string(2) "bb"
[4] =>
string(1) "2"
}
[6] =>
array(5) {
[0] =>
string(3) "红"
[1] =>
string(3) "大"
[2] =>
string(2) "1G"
[3] =>
string(2) "bb"
[4] =>
string(1) "3"
}
[7] =>
array(5) {
[0] =>
string(3) "红"
[1] =>
string(3) "大"
[2] =>
string(2) "1G"
[3] =>
string(2) "bb"
[4] =>
string(1) "4"
}
[8] =>
array(5) {
[0] =>
string(3) "红"
[1] =>
string(3) "大"
[2] =>
string(2) "1G"
[3] =>
string(2) "cc"
[4] =>
string(1) "1"
}
(more elements)...
}
近期评论