阅读量:0
在PHP中,可以使用多个数组的笛卡尔积运算方法来获取它们的所有可能组合。这里提供一个简单的方法来实现笛卡尔积运算:
function cartesian_product($arrays) { $result = array(); $arrays = array_values($arrays); $sizeIn = sizeof($arrays); $size = $sizeIn > 0 ? 1 : 0; foreach ($arrays as $array) { $size = $size * sizeof($array); } for ($i = 0; $i < $size; $i ++) { $result[$i] = array(); for ($j = 0; $j < $sizeIn; $j ++) { array_push($result[$i], current($arrays[$j])); } for ($j = ($sizeIn -1); $j >= 0; $j --) { if (next($arrays[$j])) { break; } elseif (isset ($arrays[$j])) { reset($arrays[$j]); } } } return $result; } $arrays = array( array('red', 'green'), array('apple', 'orange', 'banana'), array('small', 'medium', 'large') ); $cartesian_product = cartesian_product($arrays); foreach ($cartesian_product as $product) { echo implode(' ', $product) . "\n"; }
在这个示例中,函数cartesian_product
接受一个包含多个数组的数组作为参数,并返回这些数组的笛卡尔积。然后,通过遍历获取的笛卡尔积,将其输出到控制台。