我有一组相当复杂的数据,这些数据在数组中可用,特别是单个产品的不同选项。
在这个例子中,产品是一根电缆,有不同的长度和不同的颜色,所以你可以得到一根1米的黄色电缆,也可以得到一条1米的绿色电缆,等等。我希望能够以手风琴的形式列出这些选项,但按长度分组,所以如果客户想要一根2米的黄色电线,他们会点击"2米"手风琴,然后从手风琴内选择黄色。
以下是数组中一条记录的示例:
[3775] => Array
(
[id] => 3775
[product_id] => 4928
[active] => 0
[var] => 37:63
[price] => 0.0000
[opts] => Array
(
[37] => 0.3m
[38] => 0.5m
[39] => 1.0m
[40] => 1.5m
[41] => 2.0m
[42] => 3.0m
[43] => 4.0m
[44] => 5.0m
[45] => 6.0m
[46] => 7.0m
[47] => 8.0m
[48] => 10.0m
[49] => 15.0m
[50] => 20.0m
[51] => 25.0m
[52] => 30.0m
[53] => 50.0m
[59] => Grey
[63] => Red
[58] => Green
[55] => Blue
[65] => Yellow
[54] => Black
[62] => Purple
[64] => White
[60] => Orange
[61] => Pink
[56] => Brown
)
)
[var]键表示[opts]数组的两个ID,因此37:63属于0.3m红色。
数组的其余部分看起来完全相同(opts数组保持不变),但var、combi和ID将发生变化。
有没有一种简单的方法可以将这些选项按长度分组,然后在下面列出每种可用的颜色?
提前谢谢。
在选项数组上使用array_filter
回调函数应将字符串作为参数,如果字符串以数字开头,则返回true。您可以对使用preg_match