首页 > 编程 > PHP > 正文

详解PHP实现数组的笛卡尔积运算

2020-03-22 18:56:55
字体:
来源:转载
供稿:网友
本文主要介绍了PHP实现数组的笛卡尔积运算,结合实例形式分析了php数组的笛卡尔积运算相关实现与使用技巧,需要的朋友可以参考下,希望能帮助到大家。

数组的笛卡尔积在实际中还是挺有用处的,比如计算商品的规格时就经常用到,下面写一种实现方式,如下代码


$arr = array(  array(2),  array(6,7),  array('a','b','c'));function dikaer($arr){ $arr1 = array(); $result = array_shift($arr); while($arr2 = array_shift($arr)){  $arr1 = $result;  $result = array();  foreach($arr1 as $v){   foreach($arr2 as $v2){    if(!is_array($v))$v = array($v);    if(!is_array($v2))$v2 = array($v2);    $result[] = array_merge_recursive($v,$v2);   }  } } return $result;}

以上例子输出的结果如下:


Array(  [0] => Array    (      [0] => 2      [1] => 6      [2] => a    )  [1] => Array    (      [0] => 2      [1] => 6      [2] => b    )  [2] => Array    (      [0] => 2      [1] => 6      [2] => c    )  [3] => Array    (      [0] => 2      [1] => 7      [2] => a    )  [4] => Array    (      [0] => 2      [1] => 7      [2] => b    )  [5] => Array    (      [0] => 2      [1] => 7      [2] => c    ))

如果需要输出字符串形式的结果可以把代码改成这样


function dikaer($arr){ $arr1 = array(); $result = array_shift($arr); while($arr2 = array_shift($arr)){  $arr1 = $result;  $result = array();  foreach($arr1 as $v){   foreach($arr2 as $v2){    $result[] = $v.','.$v2;   }  } } return $result;}

输出结果如下所示:

Array(  [0] => 2,6,a  [1] => 2,6,b  [2] => 2,6,c  [3] => 2,7,a  [4] => 2,7,b  [5] => 2,7,c)

相关推荐:

php自定义函数生成笛卡尔积的方法

PHP自定义函数生成笛卡尔积

多个数组求笛卡尔积

以上就是详解PHP实现数组的笛卡尔积运算的详细内容,更多请关注 其它相关文章!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表