标题

时间:2015-11-09 16:31:21

标签: php arrays

我有一个相当复杂的数据集,可以在一个数组中使用,特别是单个产品的不同选项。

在此示例中,产品是电缆,有不同长度和不同颜色可供选择,因此您可以获得1米黄色电缆,也可以使用1米绿色电缆,依此类推。我希望能够用手风琴列出这些选项,但按长度分组,所以如果客户想要一条黄色的2米电缆,他们会点击" 2m"手风琴并从手风琴内选择黄色。

以下是数组中一条记录的示例:

[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 Red。

数组的其余部分看起来完全相同(在opts数组保持不变的意义上)但var,combi和ID将会改变。

是否有一种简单的方法可以按长度对这些选项进行分组,然后列出下面的每种可用颜色?

提前致谢。

1 个答案:

答案 0 :(得分:0)

在选项数组

上使用array_filter

回调函数应该将字符串作为参数,如果字符串以数字开头,则返回true。您可以{/ 3}}使用