关于集合的交叉积

        前几天工作中遇到一个问题要求“集合的交叉积”,

实际需求是假设两数组[1, 2] ,[5, 6] 求得结果[[1, 5], [2, 5],  [1, 6], [2, 6] ]

这让我突然想到了数据的连表查询不是也类似吗, 于是按照其相关模型,考虑了好半天终于写了一个没怎么优化的算法(哎数据结构与算法学得太烂)先记下来


<?php




$arr = [
        ['A', 'B', 'C', 'D'],
        ['a', 'b', 'c', 'd'],
       ];






function makeinter($arr){
      $inter = array_shift($arr);


      while(count($arr) > 0){
          $temp = array();
          $curr = array_shift($arr);
          foreach($curr as $k => $v){
             foreach($inter as $key => $var){
                 $temp[] = is_array($var) ? array_merge($var, (array)$v) : [$var, $v];
             }
          }
         $inter = $temp;
     }
   return $inter;
}






print_r(makeinter($arr));
?>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值