PHP实现数组的笛卡尔积运算示例
本文实例讲述了PHP实现数组的笛卡尔积运算。分享给大家供大家参考,具体如下:
数组的笛卡尔积在实际中还是挺有用处的,比如计算商品的规格时就经常用到,下面写一种实现方式,如下代码
$arr=array( array(2), array(6,7), array('a','b','c') ); functiondikaer($arr){ $arr1=array(); $result=array_shift($arr); while($arr2=array_shift($arr)){ $arr1=$result; $result=array(); foreach($arr1as$v){ foreach($arr2as$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 ) )
如果需要输出字符串形式的结果可以把代码改成这样
functiondikaer($arr){ $arr1=array(); $result=array_shift($arr); while($arr2=array_shift($arr)){ $arr1=$result; $result=array(); foreach($arr1as$v){ foreach($arr2as$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运算与运算符用法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《php正则表达式用法总结》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。