二维数组里面各个元素组合成新的数组,这里我们就需要用到笛卡尔积功能
数组格式
$arr = [ ['黑色'=>12,'白色'=>13], ['1.2KG'=>15,'2.0KG'=>16] ]
二维数组求笛卡尔积
function CartesianProduct($arr,$type='/') { $arr1 = []; $result = array_shift($arr); while ($arr2 = array_shift($arr)) { $arr1 = $result; $result = []; foreach ($arr1 as $k1=>$v1) { foreach ($arr2 as $k2=>$v2) { $result[$k1.'#'.$k2] = $v1.$type.$v2; } } } return $result; }
得到的结果格式如下:
$result = [ '黑色#1.2KG' => '12/15', '黑色#2.0KG' => '12/16', '白色#2.0KG' => '13/15', '白色#2.0KG' => '13/16', ];
注:二维数组包含2个以上元素均可使用此方法求得笛卡尔积
版权声明:本站所提供的文章、图片等内容均为用户发布或互联网整理而来,仅供学习参考,如有侵犯您的版权,请联系我们客服人员删除。