为模糊的标题表示歉意,我不确定您怎么称呼这个难题。
我在两个表中都有一个属性和变体列表。变体属于属性。 例如:
Attributes = Size and Length
Variations =
Size.Small, Size.Medium, Size.Large,
Length.Short, Length.Regular, Length.Long
因此,SQL搜索可能会返回类似的内容
'Attribute' => array(
'title' => 'Size',
'Variation' => array(
'title' => 'Small',
'title' => 'Medium',
'title' => 'Large',
),
'title' => 'Length',
'Variation' => array(
'title' => 'Short',
'title' => 'Regular',
'title' => 'Long',
),
)
我试图做的是将其呈现给浏览器,如下所示:
Small : Short
Small : Regular
Small : Long
Medium : Short
Medium : Regular
Medium : Long
Large : Short
Large : Regular
Large : Long
请记住,数据可能不仅限于两个属性,而可能是多个。与此类似。
是否有一种巧妙的方法可以使用PHP中的数组操作命令来执行此操作,还是应该使用foreach循环等来完成此操作?
我怀疑这可能不是解决此类问题的合适论坛,但是如果有人能指出正确的方向,我将不胜感激。
答案 0 :(得分:1)
您的代码有一些问题。首先,您有多个具有相同名称的键:'title' => 'Short', 'title' => 'Regular'
。如果这样设置,由于数组不能有重复的键,最终将丢失数据。另外,请考虑使用短数组语法$arr = [];
而不是$arr = array()
。就是说,这里是您可以使用的工作代码:https://3v4l.org/EIUEQ。
输出为(具有三个演示属性):
Array
(
[0] => Small Short Black
[1] => Small Short White
[2] => Small Regular Black
[3] => Small Regular White
[4] => Small Long Black
[5] => Small Long White
[6] => Medium Short Black
[7] => Medium Short White
[8] => Medium Regular Black
[9] => Medium Regular White
[10] => Medium Long Black
[11] => Medium Long White
[12] => Large Short Black
[13] => Large Short White
[14] => Large Regular Black
[15] => Large Regular White
[16] => Large Long Black
[17] => Large Long White
)