当前位置:首页 > PHP教程 > php函数 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-08-11 13:28:23 浏览: 评论:0 

这篇文章主要介绍了PHP基于自定义函数生成笛卡尔积的方法,结合具体实例形式分析了php使用数组运算模拟集合实现笛卡尔积运算的相关操作技巧,需要的朋友可以参考下。

本文实例讲述了PHP基于自定义函数生成笛卡尔积的方法,分享给大家供大家参考,具体如下:

  1. <?php 
  2.   $color = array('red''green'); 
  3.   $size = array(39, 40, 41); 
  4.   $local = array('beijing''shanghai'); 
  5.   echo "<pre>"
  6.   print_r(combineDika($color$size$local)); 
  7.   /** 
  8.    * 所有数组的笛卡尔积 
  9.    * 
  10.    * @param unknown_type $data 
  11.    */ 
  12.   function combineDika() { 
  13.     $data = func_get_args(); 
  14.     $cnt = count($data); 
  15.     $result = array(); 
  16.     foreach($data[0] as $item) { 
  17.       $result[] = array($item); 
  18.     } 
  19.     for($i = 1; $i < $cnt$i++) { 
  20.       $result = combineArray($result,$data[$i]); 
  21.     } 
  22.     return $result
  23.   } 
  24.   /** 
  25.    * 两个数组的笛卡尔积 
  26.    * 
  27.    * @param unknown_type $arr1 
  28.    * @param unknown_type $arr2 
  29.    */ 
  30.   function combineArray($arr1,$arr2) { 
  31.     $result = array(); 
  32.     foreach ($arr1 as $item1) { 
  33.       foreach ($arr2 as $item2) { 
  34.         $temp = $item1
  35.         $temp[] = $item2
  36.         $result[] = $temp
  37.       } 
  38.     } 
  39.     return $result
  40.   } 
  41. ?> 

运行结果:

  1. Array 
  2.   [0] => Array 
  3.     ( 
  4.       [0] => red 
  5.       [1] => 39 
  6.       [2] => beijing 
  7.     ) 
  8.   [1] => Array 
  9.     ( 
  10.       [0] => red 
  11.       [1] => 39 
  12.       [2] => shanghai 
  13.     ) 
  14.   [2] => Array 
  15.     ( 
  16.       [0] => red 
  17.       [1] => 40 
  18.       [2] => beijing 
  19.     ) 
  20.   [3] => Array 
  21.     ( 
  22.       [0] => red 
  23.       [1] => 40 
  24.       [2] => shanghai 
  25.     ) 
  26.   [4] => Array 
  27.     ( 
  28.       [0] => red 
  29.       [1] => 41 
  30.       [2] => beijing 
  31.     ) 
  32.   [5] => Array 
  33.     ( 
  34.       [0] => red 
  35.       [1] => 41 
  36.       [2] => shanghai 
  37.     ) 
  38.   [6] => Array 
  39.     ( 
  40.       [0] => green 
  41.       [1] => 39 
  42.       [2] => beijing 
  43.     ) 
  44.   [7] => Array 
  45.     ( 
  46.       [0] => green 
  47.       [1] => 39 
  48.       [2] => shanghai 
  49.     ) 
  50.   [8] => Array 
  51.     ( 
  52.       [0] => green 
  53.       [1] => 40 
  54.       [2] => beijing 
  55.     ) 
  56.   [9] => Array 
  57.     ( 
  58.       [0] => green 
  59.       [1] => 40 
  60.       [2] => shanghai 
  61.     ) 
  62.   [10] => Array 
  63.     ( 
  64.       [0] => green 
  65.       [1] => 41 
  66.       [2] => beijing 
  67.     ) 
  68.   [11] => Array 
  69.     ( 
  70.       [0] => green 
  71.       [1] => 41 
  72.       [2] => shanghai 
  73.     ) 
  74. )

Tags: PHP生成笛卡尔积

分享到: