【发布时间】:2020-04-27 10:10:14
【问题描述】:
我有一个包含如下对象的数组:
array:113 [
0 => App\Api\Wheel {#5809
-manufacturer: "RIAL"
-colour: "diamant"
-design: "aaaaaa"
-surface: "ss"
-diameter: 16
}
1 => App\Api\Wheel {#6201
-manufacturer: "RIAL"
-colour: "diamant"
-design: "aaaaaa"
-surface: "ss"
-diameter: 17
}
这里,根据值,我需要分组。直径会有所不同,而其他的会相同。
我的最终结果是结构相同,但直径为数组或逗号分隔的字符串。
array:113 [
0 => App\Api\Wheel {#5809
-manufacturer: "RIAL"
-colour: "diamant"
-design: "aaaaaa"
-surface: "ss"
-diameter: [
16,
17
]
}
到目前为止,我已经尝试了以下代码行,
$finalResult = array();
foreach ($records as $record) {
if (!in_array($record->getManufacturer(), array_keys($finalResult))) {
$finalResult[$record->getManufacturer()] = (object)array(
'manufacturer' => $record->getManufacturer(),
'colour' => $record->getColour(),
'design' => $record->getDesign(),
'surface' => $record->getSurface(),
'diameter' => $record->getDiameter()
);
} else {
$finalResult[$record->getManufacturer()]->diameter = [$record->getDiameter()];
}
}
dd(($finalResult));
但是,我无法按相同格式分组或返回结果。
任何人都可以帮助我吗?
【问题讨论】:
标签: php arrays object grouping