php批量生成商品规格参数sku
1.生成字符串
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <?php function Cartesian( $data ){ $len = count ( $data ); for ( $i = 0; $i < $len -1; $i ++) { if ( $i === 0) { // 数组第一个值 $result = $data [0]; } $temp = []; // 数组第一个值和第二个值组合 foreach ( $result as $res ) { //数组第二个值...$i+1 foreach ( $data [ $i +1] as $sec ){ $temp [] = $res . '-' . $sec ; } $result = $temp ; } } return $result ; } //需要计算的数组 $data = array ( array ( '白色' , '银色' , '玫瑰金' ), array ( '64G' , '128G' ), array ( '移动' , '电信' , '联通' ), array ( '国行' , '港版' ) ); //打印结果 $result = Cartesian( $data ); print_r( $result ); ?> |
2.数组格式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | <?php function Cartesian( $data ){ $len = count ( $data ); // 取第一个集合数组值 $result = $data [0]; for ( $i = 0; $i < $len -1; $i ++) { $arr1 = $result ; $result = []; // 数组第一个值和第二个值组合 foreach ( $arr1 as $res ) { //数组第二个值...$i+1 foreach ( $data [ $i +1] as $sec ){ if (! is_array ( $res )) { $res = array ( $res ); } if (! is_array ( $sec )){ $sec = array ( $sec ); } $result [] = array_merge_recursive ( $res , $sec ); } } } return $result ; } //需要计算的数组 $data = array ( array ( '白色' , '银色' , '玫瑰金' ), array ( '64G' , '128G' ), array ( '移动' , '电信' , '联通' ), array ( '国行' , '港版' ) ); //打印结果 $result = Cartesian( $data ); print_r( $result ); ?> |
copy by 公众号:PHP自学中心
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理