【发布时间】:2019-09-06 14:21:50
【问题描述】:
我有一个包含文章代码作为 id 和不同属性的数组。
$array = array(
'1234' => array(
'color' => 'blue',
'size' => 's',
'material' => 'cotton'
),
'1235' => array(
'color' => 'blue',
'size' => 'm',
'material' => 'cotton'
),
'1236' => array(
'color' => 'red',
'size' => 's',
'material' => 'cotton'
),
'1237' => array(
'color' => 'red',
'size' => 'm',
'material' => 'cotton'
),
'1238' => array(
'color' => 'red',
'size' => 'l',
'material' => 'cotton'
),
'1239' => array(
'color' => 'black',
'size' => 's',
'material' => 'cotton'
),
'1239' => array(
'color' => 'green',
'size' => 'l',
'material' => 'cotton'
)
);
现在我想为产品 ID (1236) 的每个属性生成多个下拉列表。 所以应该有一个下拉“颜色”和一个下拉“大小”。 “材料”可以忽略,因为没有区别。
现在我的问题来了: 在“颜色”下拉列表中,应该只出现颜色不同但其他属性相同的文章。我不知道我怎么能做到这一点。 因此,为文章“1236”生成下拉列表的新数组应如下所示:
$result = array(
'color' => array(
'blue' => '1234'
'red' => '1236' // the item itself
'black' => '1239'
),
'size' => array(
's' => '1236' // the item itself
'm' => '1237'
'l' => '1238'
)
);
我可能还有更多属性,例如“宽度”或“样式”等。
【问题讨论】:
-
您似乎认为您可以给我们一个规范,并期望我们为您编写代码。 专业提示:欢迎初学者,但我们希望您在提出问题之前先解决自己的问题。尽管我们非常愿意帮助您解决您编写的代码的问题,但我们不会为您编写代码。
-
我明白了。但我已经超过 3 个小时试图用超过 4 个 foreach 来编写代码。但仍然绝对没有进展。我不期待代码,更多的是暗示如何实现这样的事情。
-
您似乎也遗漏了一些东西,例如为什么
m是1237而不是1235?试着写一些算法,你怎么能手动做出来。 -
我想为文章1236生成新数组。m是1237,因为其他参数应该完全一样('color' = 'red')
标签: php arrays sorting dropdown