我有一个包含以下内容的PHP数组 每篇文章都有一个订单号,并且可以有多个具有关联选项的组。我想在一个数组中组合相同的文章但是所有选项。
[0] => Array
(
[ordernumber] => SW10001.1
[group_name] => Typ
[option_name] => CD-12
)
[1] => Array
(
[ordernumber] => SW10001.1
[group_name] => Farbe
[option_name] => Blau
)
[2] => Array
(
[ordernumber] => SW10001.10
[group_name] => Typ
[option_name] => CD-15
)
[3] => Array
(
[ordernumber] => SW10001.10
[group_name] => Farbe
[option_name] => Rot
)
我需要像这样组合的数组:
[0] => Array
(
[ordernumber] => SW10001.1
[options] => (
[0] => (
[group_name] => Typ
[option_name] => CD-12
)
[1] => (
[group_name] => Farbe
[option_name] => Blau
)
)
)
[1] => Array
(
[ordernumber] => SW10001.10
[options] => (
[0] => (
[group_name] => Typ
[option_name] => CD-15
)
[1] => (
[group_name] => Farbe
[option_name] => Rot
)
)
)
//编辑:我刚刚将数组键更正为非唯一。
答案 0 :(得分:0)
您无法在[group]
下拥有多个[options]
个密钥。每个数组中的键必须是唯一的。但是你可以将它们放在带有简单foreach循环的数字索引数组中。
foreach ($your_array as $item) {
$ordernumber = array_shift($item);
$result[$ordernumber]['ordernumber'] = $ordernumber;
$result[$ordernumber]['options'][] = $item;
}
这会生成类似于您尝试获取的输出,但[options]
中的键只有0
,1
等,这可能是你最接近的那种格式。