求 组合数据的筛选方法 排列组合 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个在勾选了颜色的时候 提交后台数据查询。例如color=红 把查询结果表现在点击的按钮上边,然后如果用户再勾选一个,则后台查询colore=红 and size=1 把查询的结果表现在按钮上不就可以了 $specs = array( 'c' => '颜色', 's' => '大小', 't' => '质地', 'm' => '款式',);$combi = Array( [红_1m_皮_款式1] => Array ( [specs] => Array ( [c] => 红 [s] => 1m [t] => 皮 [m] => 款式1 ) [num] => 0 ) [红_1m_皮_款式2] => Array ( [specs] => Array ( [c] => 红 [s] => 1m [t] => 皮 [m] => 款式2 ) [num] => 0 ) [红_1m_棉_款式1] => Array ( [specs] => Array ( [c] => 红 [s] => 1m [t] => 棉 [m] => 款式1 ) [num] => 0 ) [红_1m_棉_款式2] => Array ( [specs] => Array ( [c] => 红 [s] => 1m [t] => 棉 [m] => 款式2 ) [num] => 1 ) [红_2m_皮_款式1] => Array ( [specs] => Array ( [c] => 红 [s] => 2m [t] => 皮 [m] => 款式1 ) [num] => 0 ) [红_2m_皮_款式2] => Array ( [specs] => Array ( [c] => 红 [s] => 2m [t] => 皮 [m] => 款式2 ) [num] => 1 ) [红_2m_棉_款式1] => Array ( [specs] => Array ( [c] => 红 [s] => 2m [t] => 棉 [m] => 款式1 ) [num] => 0 ) [红_2m_棉_款式2] => Array ( [specs] => Array ( [c] => 红 [s] => 2m [t] => 棉 [m] => 款式2 ) [num] => 0 ) [红_3m_皮_款式1] => Array ( [specs] => Array ( [c] => 红 [s] => 3m [t] => 皮 [m] => 款式1 ) [num] => 0 ) [红_3m_皮_款式2] => Array ( [specs] => Array ( [c] => 红 [s] => 3m [t] => 皮 [m] => 款式2 ) [num] => 1 ) [红_3m_棉_款式1] => Array ( [specs] => Array ( [c] => 红 [s] => 3m [t] => 棉 [m] => 款式1 ) [num] => 1 ) [红_3m_棉_款式2] => Array ( [specs] => Array ( [c] => 红 [s] => 3m [t] => 棉 [m] => 款式2 ) [num] => 0 ) [绿_1m_皮_款式1] => Array ( [specs] => Array ( [c] => 绿 [s] => 1m [t] => 皮 [m] => 款式1 ) [num] => 0 ) [绿_1m_皮_款式2] => Array ( [specs] => Array ( [c] => 绿 [s] => 1m [t] => 皮 [m] => 款式2 ) [num] => 1 ) [绿_1m_棉_款式1] => Array ( [specs] => Array ( [c] => 绿 [s] => 1m [t] => 棉 [m] => 款式1 ) [num] => 1 ) [绿_1m_棉_款式2] => Array ( [specs] => Array ( [c] => 绿 [s] => 1m [t] => 棉 [m] => 款式2 ) [num] => 0 ) [绿_2m_皮_款式1] => Array ( [specs] => Array ( [c] => 绿 [s] => 2m [t] => 皮 [m] => 款式1 ) [num] => 0 ) [绿_2m_皮_款式2] => Array ( [specs] => Array ( [c] => 绿 [s] => 2m [t] => 皮 [m] => 款式2 ) [num] => 1 ) [绿_2m_棉_款式1] => Array ( [specs] => Array ( [c] => 绿 [s] => 2m [t] => 棉 [m] => 款式1 ) [num] => 1 ) [绿_2m_棉_款式2] => Array ( [specs] => Array ( [c] => 绿 [s] => 2m [t] => 棉 [m] => 款式2 ) [num] => 1 ) [绿_3m_皮_款式1] => Array ( [specs] => Array ( [c] => 绿 [s] => 3m [t] => 皮 [m] => 款式1 ) [num] => 0 ) [绿_3m_皮_款式2] => Array ( [specs] => Array ( [c] => 绿 [s] => 3m [t] => 皮 [m] => 款式2 ) [num] => 0 ) [绿_3m_棉_款式1] => Array ( [specs] => Array ( [c] => 绿 [s] => 3m [t] => 棉 [m] => 款式1 ) [num] => 1 ) [绿_3m_棉_款式2] => Array ( [specs] => Array ( [c] => 绿 [s] => 3m [t] => 棉 [m] => 款式2 ) [num] => 0 ) [蓝_1m_皮_款式1] => Array ( [specs] => Array ( [c] => 蓝 [s] => 1m [t] => 皮 [m] => 款式1 ) [num] => 0 ) [蓝_1m_皮_款式2] => Array ( [specs] => Array ( [c] => 蓝 [s] => 1m [t] => 皮 [m] => 款式2 ) [num] => 1 ) [蓝_1m_棉_款式1] => Array ( [specs] => Array ( [c] => 蓝 [s] => 1m [t] => 棉 [m] => 款式1 ) [num] => 1 ) [蓝_1m_棉_款式2] => Array ( [specs] => Array ( [c] => 蓝 [s] => 1m [t] => 棉 [m] => 款式2 ) [num] => 0 ) [蓝_2m_皮_款式1] => Array ( [specs] => Array ( [c] => 蓝 [s] => 2m [t] => 皮 [m] => 款式1 ) [num] => 1 ) [蓝_2m_皮_款式2] => Array ( [specs] => Array ( [c] => 蓝 [s] => 2m [t] => 皮 [m] => 款式2 ) [num] => 0 ) [蓝_2m_棉_款式1] => Array ( [specs] => Array ( [c] => 蓝 [s] => 2m [t] => 棉 [m] => 款式1 ) [num] => 0 ) [蓝_2m_棉_款式2] => Array ( [specs] => Array ( [c] => 蓝 [s] => 2m [t] => 棉 [m] => 款式2 ) [num] => 1 ) [蓝_3m_皮_款式1] => Array ( [specs] => Array ( [c] => 蓝 [s] => 3m [t] => 皮 [m] => 款式1 ) [num] => 0 ) [蓝_3m_皮_款式2] => Array ( [specs] => Array ( [c] => 蓝 [s] => 3m [t] => 皮 [m] => 款式2 ) [num] => 0 ) [蓝_3m_棉_款式1] => Array ( [specs] => Array ( [c] => 蓝 [s] => 3m [t] => 棉 [m] => 款式1 ) [num] => 1 ) [蓝_3m_棉_款式2] => Array ( [specs] => Array ( [c] => 蓝 [s] => 3m [t] => 棉 [m] => 款式2 ) [num] => 0 ))可以从这个结果集中进行多次筛选看看 我做过这种筛选,但是方法比较笨。建一个数组保存要要筛选的值,用来进行下次添加条件时,组装sql语句,再建一个数组保存已经筛选的属性,红色框就相当于表示已经筛选的属性。 不太清楚你打算得到怎样的结果假定你的数组为 $dict,则有$_GET = array('c' => '红', 't' => '皮', 's' => '2m');print_r(find($dict));function find(&$ar) { $res = array(); foreach($ar as $k=>$item) { if($_GET == array_intersect_assoc($_GET, $item['specs'])) { if($item['num']) $res[] = $k; } } return $res;}Array( [0] => 红_2m_皮_款式2) $size = [1,2,3,4,5];$color = [a,b,c];$stru = [x, y];$result = array();$result[1_a_x] = 15;$result[2_a_x] = 10;$result[3_a_y] = 12;function fun($cur, $pos, $result) { return ;// 通过传进来的cur 和a 来返回相应的值, //例如传了a,1,则取出来是[0] = [1,2,3],[2] => [x,y] // 最简单(效率不高)的办法是遍历拿到result key 根据$pos 取出来相应的位置,然后算出来其他两列的值。} 根据#8的数组$combi,可选择的商品有: 红/1m/棉/款式2 红/2m/皮/款式2 红/3m/皮/款式2 红/3m/棉/款式1 绿/1m/皮/款式2 绿/1m/棉/款式1 绿/2m/皮/款式2 绿/2m/棉/款式1 绿/2m/棉/款式2 绿/3m/棉/款式1 蓝/1m/皮/款式2 蓝/1m/棉/款式1 蓝/2m/皮/款式1 蓝/2m/棉/款式2 蓝/3m/棉/款式1选择界面:进行选择:1. 选择了 红色时效果:2. 选择了 红色,2m时效果:3. 选择了 红色,棉时效果:4. 选择了 红色,棉,3m时效果:5. 选择了 红色,皮时效果:6. 选择了 红色,皮,3m时效果:7. 选择了 红色,皮,3m,款式2时效果:不知道描述清楚了没有,脑袋要成浆糊了。。 关于preg_match_all的抓取 mysql怎么重置记录指针? asp转php 关开论坛开发价格 外包 关于取url的域名 关于传递下拉菜单的值的问题(Mysql) 请问如何在linux下看php的电子书或文档 php中执行die()了以后对服务器端压力不大吧 如何替换这个符号 COPY()能不能把本地文件COPY到远程的机子上??? PHP汉字转化为拼音问题 如何使用php input流上传图片
color=红 把查询结果表现在点击的按钮上边,然后如果用户再勾选一个,则后台查询
colore=红 and size=1 把查询的结果表现在按钮上
不就可以了
$specs = array(
'c' => '颜色',
's' => '大小',
't' => '质地',
'm' => '款式',
);
$combi = Array
(
[红_1m_皮_款式1] => Array
(
[specs] => Array
(
[c] => 红
[s] => 1m
[t] => 皮
[m] => 款式1
) [num] => 0
) [红_1m_皮_款式2] => Array
(
[specs] => Array
(
[c] => 红
[s] => 1m
[t] => 皮
[m] => 款式2
) [num] => 0
) [红_1m_棉_款式1] => Array
(
[specs] => Array
(
[c] => 红
[s] => 1m
[t] => 棉
[m] => 款式1
) [num] => 0
) [红_1m_棉_款式2] => Array
(
[specs] => Array
(
[c] => 红
[s] => 1m
[t] => 棉
[m] => 款式2
) [num] => 1
) [红_2m_皮_款式1] => Array
(
[specs] => Array
(
[c] => 红
[s] => 2m
[t] => 皮
[m] => 款式1
) [num] => 0
) [红_2m_皮_款式2] => Array
(
[specs] => Array
(
[c] => 红
[s] => 2m
[t] => 皮
[m] => 款式2
) [num] => 1
) [红_2m_棉_款式1] => Array
(
[specs] => Array
(
[c] => 红
[s] => 2m
[t] => 棉
[m] => 款式1
) [num] => 0
) [红_2m_棉_款式2] => Array
(
[specs] => Array
(
[c] => 红
[s] => 2m
[t] => 棉
[m] => 款式2
) [num] => 0
) [红_3m_皮_款式1] => Array
(
[specs] => Array
(
[c] => 红
[s] => 3m
[t] => 皮
[m] => 款式1
) [num] => 0
) [红_3m_皮_款式2] => Array
(
[specs] => Array
(
[c] => 红
[s] => 3m
[t] => 皮
[m] => 款式2
) [num] => 1
) [红_3m_棉_款式1] => Array
(
[specs] => Array
(
[c] => 红
[s] => 3m
[t] => 棉
[m] => 款式1
) [num] => 1
) [红_3m_棉_款式2] => Array
(
[specs] => Array
(
[c] => 红
[s] => 3m
[t] => 棉
[m] => 款式2
) [num] => 0
) [绿_1m_皮_款式1] => Array
(
[specs] => Array
(
[c] => 绿
[s] => 1m
[t] => 皮
[m] => 款式1
) [num] => 0
) [绿_1m_皮_款式2] => Array
(
[specs] => Array
(
[c] => 绿
[s] => 1m
[t] => 皮
[m] => 款式2
) [num] => 1
) [绿_1m_棉_款式1] => Array
(
[specs] => Array
(
[c] => 绿
[s] => 1m
[t] => 棉
[m] => 款式1
) [num] => 1
) [绿_1m_棉_款式2] => Array
(
[specs] => Array
(
[c] => 绿
[s] => 1m
[t] => 棉
[m] => 款式2
) [num] => 0
) [绿_2m_皮_款式1] => Array
(
[specs] => Array
(
[c] => 绿
[s] => 2m
[t] => 皮
[m] => 款式1
) [num] => 0
) [绿_2m_皮_款式2] => Array
(
[specs] => Array
(
[c] => 绿
[s] => 2m
[t] => 皮
[m] => 款式2
) [num] => 1
) [绿_2m_棉_款式1] => Array
(
[specs] => Array
(
[c] => 绿
[s] => 2m
[t] => 棉
[m] => 款式1
) [num] => 1
) [绿_2m_棉_款式2] => Array
(
[specs] => Array
(
[c] => 绿
[s] => 2m
[t] => 棉
[m] => 款式2
) [num] => 1
) [绿_3m_皮_款式1] => Array
(
[specs] => Array
(
[c] => 绿
[s] => 3m
[t] => 皮
[m] => 款式1
) [num] => 0
) [绿_3m_皮_款式2] => Array
(
[specs] => Array
(
[c] => 绿
[s] => 3m
[t] => 皮
[m] => 款式2
) [num] => 0
) [绿_3m_棉_款式1] => Array
(
[specs] => Array
(
[c] => 绿
[s] => 3m
[t] => 棉
[m] => 款式1
) [num] => 1
) [绿_3m_棉_款式2] => Array
(
[specs] => Array
(
[c] => 绿
[s] => 3m
[t] => 棉
[m] => 款式2
) [num] => 0
) [蓝_1m_皮_款式1] => Array
(
[specs] => Array
(
[c] => 蓝
[s] => 1m
[t] => 皮
[m] => 款式1
) [num] => 0
) [蓝_1m_皮_款式2] => Array
(
[specs] => Array
(
[c] => 蓝
[s] => 1m
[t] => 皮
[m] => 款式2
) [num] => 1
) [蓝_1m_棉_款式1] => Array
(
[specs] => Array
(
[c] => 蓝
[s] => 1m
[t] => 棉
[m] => 款式1
) [num] => 1
) [蓝_1m_棉_款式2] => Array
(
[specs] => Array
(
[c] => 蓝
[s] => 1m
[t] => 棉
[m] => 款式2
) [num] => 0
) [蓝_2m_皮_款式1] => Array
(
[specs] => Array
(
[c] => 蓝
[s] => 2m
[t] => 皮
[m] => 款式1
) [num] => 1
) [蓝_2m_皮_款式2] => Array
(
[specs] => Array
(
[c] => 蓝
[s] => 2m
[t] => 皮
[m] => 款式2
) [num] => 0
) [蓝_2m_棉_款式1] => Array
(
[specs] => Array
(
[c] => 蓝
[s] => 2m
[t] => 棉
[m] => 款式1
) [num] => 0
) [蓝_2m_棉_款式2] => Array
(
[specs] => Array
(
[c] => 蓝
[s] => 2m
[t] => 棉
[m] => 款式2
) [num] => 1
) [蓝_3m_皮_款式1] => Array
(
[specs] => Array
(
[c] => 蓝
[s] => 3m
[t] => 皮
[m] => 款式1
) [num] => 0
) [蓝_3m_皮_款式2] => Array
(
[specs] => Array
(
[c] => 蓝
[s] => 3m
[t] => 皮
[m] => 款式2
) [num] => 0
) [蓝_3m_棉_款式1] => Array
(
[specs] => Array
(
[c] => 蓝
[s] => 3m
[t] => 棉
[m] => 款式1
) [num] => 1
) [蓝_3m_棉_款式2] => Array
(
[specs] => Array
(
[c] => 蓝
[s] => 3m
[t] => 棉
[m] => 款式2
) [num] => 0
))
可以从这个结果集中进行多次筛选看看
建一个数组保存要要筛选的值,用来进行下次添加条件时,组装sql语句,再建一个数组保存已经筛选的属性,红色框就相当于表示已经筛选的属性。
假定你的数组为 $dict,则有$_GET = array('c' => '红', 't' => '皮', 's' => '2m');print_r(find($dict));function find(&$ar) {
$res = array();
foreach($ar as $k=>$item) {
if($_GET == array_intersect_assoc($_GET, $item['specs'])) {
if($item['num']) $res[] = $k;
}
}
return $res;
}
Array
(
[0] => 红_2m_皮_款式2
)
$size = [1,2,3,4,5];
$color = [a,b,c];
$stru = [x, y];$result = array();
$result[1_a_x] = 15;
$result[2_a_x] = 10;
$result[3_a_y] = 12;function fun($cur, $pos, $result) {
return ;// 通过传进来的cur 和a 来返回相应的值,
//例如传了a,1,则取出来是[0] = [1,2,3],[2] => [x,y]
// 最简单(效率不高)的办法是遍历拿到result key 根据$pos 取出来相应的位置,然后算出来其他两列的值。
}
根据#8的数组$combi,可选择的商品有:
红/1m/棉/款式2
红/2m/皮/款式2
红/3m/皮/款式2
红/3m/棉/款式1
绿/1m/皮/款式2
绿/1m/棉/款式1
绿/2m/皮/款式2
绿/2m/棉/款式1
绿/2m/棉/款式2
绿/3m/棉/款式1
蓝/1m/皮/款式2
蓝/1m/棉/款式1
蓝/2m/皮/款式1
蓝/2m/棉/款式2
蓝/3m/棉/款式1
选择界面:进行选择:
1. 选择了 红色时效果:2. 选择了 红色,2m时效果:3. 选择了 红色,棉时效果:4. 选择了 红色,棉,3m时效果:5. 选择了 红色,皮时效果:6. 选择了 红色,皮,3m时效果:7. 选择了 红色,皮,3m,款式2时效果:
不知道描述清楚了没有,脑袋要成浆糊了。。