php教程

超轻量级php框架startmvc

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

更新时间:2020-03-24 23:44:47 作者:startmvc
本文实例讲述了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 自定义函数 生成 笛卡尔积