加入收藏 | 设为首页 | 会员中心 | 我要投稿 钦州站长网 (https://www.0777zz.cn/)- 智能办公、数据计算、云存储网关、负载均衡、设备管理!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP基于自定义函数生成笛卡尔积的方法示例

发布时间:2022-08-03 10:22:30 所属栏目:PHP教程 来源:互联网
导读:这篇文章主要介绍了PHP基于自定义函数生成笛卡尔积的方法,结合具体实例形式分析了php使用数组运算模拟集合实现笛卡尔积运算的相关操作技巧,需要的朋友可以参考下。 本文实例讲述了PHP基于自定义函数生成笛卡尔积的方法,分享给大家供大家参考,具体如下: ?p
  这篇文章主要介绍了PHP基于自定义函数生成笛卡尔积的方法,结合具体实例形式分析了php使用数组运算模拟集合实现笛卡尔积运算的相关操作技巧,需要的朋友可以参考下。
 
  本文实例讲述了PHP基于自定义函数生成笛卡尔积的方法,分享给大家供大家参考,具体如下:
 
  <?php
    $color = array('red', 'green');
    $size = array(39, 40, 41);
    $local = array('beijing', 'shanghai');
    echo "<pre>";
    print_r(combineDika($color, $size, $local));
    /**
     * 所有数组的笛卡尔积
     *
     * @param unknown_type $data
     */
    function combineDika() {
      $data = func_get_args();
      $cnt = count($data);
      $result = array();
      foreach($data[0] as $item) {
        $result[] = array($item);
      }
      for($i = 1; $i < $cnt; $i++) {
        $result = combineArray($result,$data[$i]);
      }
      return $result;
    }
    /**
     * 两个数组的笛卡尔积
     *
     * @param unknown_type $arr1
     * @param unknown_type $arr2
     */
    function combineArray($arr1,$arr2) {
      $result = array();
      foreach ($arr1 as $item1) {
        foreach ($arr2 as $item2) {
          $temp = $item1;
          $temp[] = $item2;
          $result[] = $temp;
        }
      }
      return $result;
    }
  ?>
  运行结果:
 
  Array
  (
    [0] => Array
      (
        [0] => red
        [1] => 39
        [2] => beijing
      )
    [1] => Array
      (
        [0] => red
        [1] => 39
        [2] => shanghai
      )
    [2] => Array
      (
        [0] => red
        [1] => 40
        [2] => beijing
      )
    [3] => Array
      (
        [0] => red
        [1] => 40
        [2] => shanghai
      )
    [4] => Array
      (
        [0] => red
        [1] => 41
        [2] => beijing
      )
    [5] => Array
      (
        [0] => red
        [1] => 41
        [2] => shanghai
      )
    [6] => Array
      (
        [0] => green
        [1] => 39
        [2] => beijing
      )
    [7] => Array
      (
        [0] => green
        [1] => 39
        [2] => shanghai
      )
    [8] => Array
      (
        [0] => green
        [1] => 40
        [2] => beijing
      )
    [9] => Array
      (
        [0] => green
        [1] => 40
        [2] => shanghai
      )
    [10] => Array
      (
        [0] => green
        [1] => 41
        [2] => beijing
      )
    [11] => Array
      (
        [0] => green
        [1] => 41
        [2] => shanghai
      )
  )
   a

(编辑:钦州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读