PHP实现一个数组中值的交叉组合

有一个数组,如果有3个值:array(3,2,6)。交叉组合后返回:3-2,3-6,2-6,3-2-6

有一个数组,如果有4个值:array(3,2,6,9)。交叉组合后返回:3-2,3-6,3-9,2-6,2-9,6-9,3-2-6,3-2-9,2-6-9,3-2-6-9

5个值,6个值以此类推

$array = array(1, 2, 3, 4, 5, 6);
$len = count($array);
$data = array();
for($prefixLength = 1; $prefixLength < $len; $prefixLength++){
    for($i = 0; $i < $len - 1; $i++){
        $prefixArray = array_slice($array, $i, $prefixLength);
        $prefix = implode('-', $prefixArray);
        for($j = $i + $prefixLength; $j < $len; $j++){
            $data[] = $prefix .'-'. $array[$j];
        }
    }
}
print_r($data);

你可能感兴趣的:(PHP实现一个数组中值的交叉组合)