php 二维数组 笛卡尔积的代码实现

2021-04-08 10:07:41   php分享记录

  笛卡尔积  

php 二维数组 笛卡尔积的代码实现

  1. function cartesian($array,$arr = array()){
  2. //去除第一个元素
  3. $first = array_shift($array);
  4. //判断是否是第一次进行拼接
  5. if(count($arr) > 0) {
  6. foreach ($arr as $k => $val) {
  7. foreach ($first as $key => $value) {
  8. $arr2[] = $val.','.$value;
  9. }
  10. }
  11. }else{
  12. foreach ($first as $key => $value) {
  13. $arr2[] = $value;
  14. }
  15. }
  16. //递归进行拼接
  17. if(count($array) > 0){
  18. $arr2 = $this->cartesian($array,$arr2);
  19. }
  20. //返回最终笛卡尔积
  21. return $arr2;
  22. }