时间:2021-07-01 10:21:17 帮助过:25人阅读
你的尺码 、颜色、图案 的值都是在一个字段里的吗?用什么分隔的?数据类型是什么?
看看这个测试例,你应该会知道怎么做了
create temporary table a (`尺码` varchar(10)) charset gbk;insert into a values (36),(37);create temporary table b (`颜色` varchar(10)) charset gbk;insert into b values ('红'),('白'),('蓝'),('黑');create temporary table c (`图案` varchar(10)) charset gbk;insert into c values ('印花'),('平板');select * from a,b,c;
尺码 颜色 图案 36 红 印花 37 红 印花 36 红 平板 37 红 平板 36 白 印花 37 白 印花 36 白 平板 37 白 平板 36 蓝 印花 37 蓝 印花 36 蓝 平板 37 蓝 平板 36 黑 印花 37 黑 印花 36 黑 平板 37 黑 平板
针对每个产品,首先把有的列出来。
例如尺码、颜色、图案 则会有3个数组, size,color,pattern。
例如尺码、颜色则只有两个数组。
然后循环。
你的尺码 、颜色、图案 的值都是在一个字段里的吗?用什么分隔的?数据类型是什么?
针对每个产品,首先把有的列出来。
例如尺码、颜色、图案 则会有3个数组, size,color,pattern。
例如尺码、颜色则只有两个数组。
然后循环。
例
$ar = array( array( "A", "B", "C"), array("1", "2", "3", "4"), array("X", "Y", "Z"),);print_rDescartes($ar));function Descartes($d) { $r = array_pop($d); while($d) { $t = array(); $s = array_pop($d); if(! is_array($s)) $s = array($s); foreach($s as $x) { foreach($r as $y) $t[] = array_merge(array($x), is_array($y) ? $y : array($y)); } $r = $t; } return $r;}
例
$ar = array( array( "A", "B", "C"), array("1", "2", "3", "4"), array("X", "Y", "Z"),);print_rDescartes($ar));function Descartes($d) { $r = array_pop($d); while($d) { $t = array(); $s = array_pop($d); if(! is_array($s)) $s = array($s); foreach($s as $x) { foreach($r as $y) $t[] = array_merge(array($x), is_array($y) ? $y : array($y)); } $r = $t; } return $r;}