PHP数组的笛卡尔积

时间:2015-06-17 08:56:43

标签: php arrays

标题可能会产生误导,但我真的不知道它叫什么。对不起,我很抱歉:(

所以,我有一个像这样的数组

$start = array(
    array('waterpark'),
    array('spain','greece'),
    array('1','2','3','4'),
);

如何将该数组转换为此类

$output = array(
    array('waterpark', 'spain', '1'),
    array('waterpark', 'spain', '2'),
    array('waterpark', 'spain', '3'),
    array('waterpark', 'spain', '4'),
    array('waterpark', 'greece', '1'),
    array('waterpark', 'greece', '2'),
    array('waterpark', 'greece', '3'),
    array('waterpark', 'greece', '4'),
);

提前谢谢

2 个答案:

答案 0 :(得分:5)

使用readymade Cartesian class

使用它,

$output = Cartesian::build($start);

作者:jwage

答案 1 :(得分:1)

试试这个会对你有帮助,

    foreach ($start[0] as $value1) { 
        foreach ($start[1] as $value2) {
            foreach ($start[2] as $value3) {
                $res[] = array($value1,$value2,$value3);
            }
        }
   }
   var_dump($res);
相关问题