php - PHP 从组合列表中创建一个变体表
问题描述
为这个模糊的标题道歉,我不确定你会怎么称呼这个谜题。
我有两个表中的属性和变体列表。变体属于属性。例如 :
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 循环等来完成。
我怀疑这可能不是解决此类问题的正确论坛,但如果有人能指出我正确的方向,我将不胜感激。
解决方案
你的代码有一些问题。首先,您有多个具有相同名称的键:'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
)
推荐阅读
- html - SVG蜂窝多边形填充动画
- ios - 如何在更改 UIView 大小时应用动画?+ 斯威夫特 5
- python-3.x - 用 Numpy 数组绘制 Pandas DF
- linux - 提取后文件夹层次结构丢失
- c# - System.ArgumentOutOfRangeException:索引超出范围。必须是非负数且小于集合的大小。(参数“索引”)
- google-chrome-extension - Chrome webRequest API:onBeforeSendHeaders 事件不会更改标头
- javascript - 按对象内的名称过滤数组
- sql-server - 在变量中发送数据库名称
- bluetooth - 蓝牙 5.1 到达角向后兼容性
- ethernet - 互联网会定期在路由器 Mikrotik 中消失