首页 > 语言 > PHP > 正文

PHP实现数组的笛卡尔积运算示例

2024-05-05 00:01:27
字体:
来源:转载
供稿:网友

本文实例讲述了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教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选