属性:颜色 红,黄,蓝。
大小 大,小 。
容量 1G,2G,3G,5G
要求得到各个属性值的所有组合:
比如 红大,红小,红大1G,红小1G,红小2G蓝大,。。 蓝1G。
应该是用多维数组,数组:$products_options[] = array('option_id'=>$products_options_id, "products_options_value"=>$products_options_value);$products_options_value也是对应数组:
$products_options_value[] = array( 'option_id'=>$products_options_id,'text' => $products_options );
请大家帮忙看1下。谢谢。
大小 大,小 。
容量 1G,2G,3G,5G
要求得到各个属性值的所有组合:
比如 红大,红小,红大1G,红小1G,红小2G蓝大,。。 蓝1G。
应该是用多维数组,数组:$products_options[] = array('option_id'=>$products_options_id, "products_options_value"=>$products_options_value);$products_options_value也是对应数组:
$products_options_value[] = array( 'option_id'=>$products_options_id,'text' => $products_options );
请大家帮忙看1下。谢谢。
注意不能有属性为空的属性集<?php$color = array("红", "黄", "蓝");
$size = array("大", "小");
$cap = array("1G", "2G", "3G", "5G");$foo = array($color, $size, $cap);function get_all($e)
{
$elem_total = count($e);
$max = 1;
for ($i=0; $i<$elem_total; $i++) {
$len = count($e[$i])+1;
$elem_size[] = $len;
$max *= $len;
}
for ($i=1; $i<$max; $i++) {
$m = $i;
$item = "";
$ct = 0;
for ($j=0; $j<$elem_total; $j++) {
$n = $m%$elem_size[$j];
$item .= $n>0?$e[$j][$n-1]:"";
$ct += $n>0?1:0;
$m = (int)($m/$elem_size[$j]);
}
if ($ct>=2)
$all[] = $item;
}
return $all;
}$ret = get_all($foo);
print_r($ret);?>
$len = count($xxx);
for($i=0; $i<$len; $i++)了
就是没有用foreach的意识