按标题列出php数组中的数据


Listing data in a php array by heading

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

在这个例子中,产品是一根电缆,有不同的长度和不同的颜色,所以你可以得到一根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