public function test(){
$data = [
['id' => 1, 'name' => 'Alice'],
['id' => 2, 'name' => 'Bob'],
['id' => 1, 'name' => 'Alice'],
['id' => 1, 'name' => 'Alice'],
['id' => 2, 'name' => 'Bob'],
['id' => 3, 'name' => 'Charlie'],
];
$groupedData = [];
$counters = [];
foreach ($data as $item) {
$key = implode('-', array_values($item));
if (!isset($counters[$key])) {
$counters[$key] = 0;
}
$item['seq'] = ++$counters[$key];
$groupedData[] = $item;
}
print_r($groupedData);
}
打印结果:
Array
(
[0] => Array
(
[id] => 1
[name] => Alice
[seq] => 1
)
[1] => Array
(
[id] => 2
[name] => Bob
[seq] => 1
)
[2] => Array
(
[id] => 1
[name] => Alice
[seq] => 2
)
[3] => Array
(
[id] => 1
[name] => Alice
[seq] => 3
)
[4] => Array
(
[id] => 2
[name] => Bob
[seq] => 2
)
[5] => Array
(
[id] => 3
[name] => Charlie
[seq] => 1
)
)