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

 更新时间:2017年09月30日 16:22:08   作者:崇拜飞哥  
这篇文章主要介绍了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
    )
)

PS:这里再为大家推荐几款计算工具供大家进一步参考借鉴:

在线一元函数(方程)求解计算工具:
http://tools.jb51.net/jisuanqi/equ_jisuanqi

科学计算器在线使用_高级计算器在线计算:
http://tools.jb51.net/jisuanqi/jsqkexue

在线计算器_标准计算器:
http://tools.jb51.net/jisuanqi/jsq

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数学运算技巧总结》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《php正则表达式用法总结

希望本文所述对大家PHP程序设计有所帮助。

相关文章

  • php后退一页表单内容保存实现方法

    php后退一页表单内容保存实现方法

    php表单在提交之后再后退,表单的内容默认是被清空的(使用session_start的时候),解决方法是在session_start() 之后,字符输出之前写上header(Cache-control: private)
    2012-06-06
  • php foreach 使用&(与运算符)引用赋值要注意的问题

    php foreach 使用&(与运算符)引用赋值要注意的问题

    foreach 通过在 $value 之前加上 & 很容易就能修改数组的单元,在 foreach 使用引用时要注意了。也可以在处理完后立即断开引用关系,后面就不会有上述情况了。
    2010-02-02
  • php 三大特点:封装,继承,多态

    php 三大特点:封装,继承,多态

    本文主要介绍了php 三大特点:封装,继承,多态。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • php实现插入排序

    php实现插入排序

    本文给大家分享的是使用php实现插入排序的方法,十分的简单实用,有需要的小伙伴可以参考下。
    2015-03-03
  • PHP实现通过正则表达式替换回调的内容标签

    PHP实现通过正则表达式替换回调的内容标签

    这篇文章主要介绍了PHP实现通过正则表达式替换回调的内容标签的方法,涉及php正则匹配与替换的相关技巧,需要的朋友可以参考下
    2015-06-06
  • php使用swoole实现TCP服务

    php使用swoole实现TCP服务

    这篇文章主要为大家详细介绍了php如何使用swoole实现TCP服务,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下
    2024-04-04
  • PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用

    PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用

    前几篇系列文章,我比较关注的是 PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数 但是我觉得我还是没有说清楚,我自己也有很多不理解的地方,而且这篇是我的第一篇这方面的文章,有很多的纰漏,所以我会经常性的去做修改,如果大家有好的意见不妨告知一、二
    2012-05-05
  • PHP实现随机发扑克牌

    PHP实现随机发扑克牌

    这篇文章主要为大家详细介绍了PHP实现随机发扑克牌,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • php设计模式小结

    php设计模式小结

    这篇文章主要介绍php的设计模式,主要介绍以下三中模式,主要包括单例模式,工厂模式,观察者模式
    2013-02-02
  • 详解PHP中mb_strpos的使用

    详解PHP中mb_strpos的使用

    这篇文章主要介绍了详解PHP中mb_strpos的使用,通过使用语法以及实例给大家详细分析了用法,需要的朋友参考学习下。
    2018-02-02

最新评论