$arr = array(
array('a','b','c'),
array('c','f'),
array('g','z'),
array('x','y')
);
//$arr子集元素长度可能会多一些
//将$arr的子集元素与$arr其他子集元素两两组合或者三三四四组合
//子集array('a','b','c')中的元素不需要组合
//两两组合
$newarr = array(
array('a','c'),
array('a','f'),
array('b','c'),
array('b','f'),
array('c','c'),
array('c','f'),
……
)
//三三组合
$newarr = array(
array('a','c','g'),
array('a','f','g'),
array('b','c','g'),
array('b','f','g'),
array('c','c','g'),
array('c','f','g'),
……
)
//四四组合
$newarr = array(
array('a','c','g','x'),
array('a','f','g','x'),
array('b','c','g','x'),
array('b','f','g','x'),
array('c','c','g','x'),
array('c','f','g','x'),
……
)
用一个函数可以实现吗?
//$arr:原始数组,$cNum:组合长度
function getCombination($arr,$cNum){
……
}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
递归?
题主的问题应该是
PHP计算二维数组笛卡尔积
吧?如果是的话,请看以下代码:呃……我目前的想法是先取符合组合长度规定的数组,再求笛卡尔积,最后合并成新数组……
三个函数完成。