'label of set', * 'entries' => * [ * 'label-of-entry' => 'value' * ] * ] * 1: [ * 'label' => 'label of another set', * 'entries' => * [ * 'label-of-entry' => 'value' * ] * ] * * * @param array $data * * @return array */ public function multiSet(array $data): array { $chartData = [ 'count' => count($data), 'labels' => array_keys($data[0]['entries']), // take ALL labels from the first set. 'datasets' => [], ]; foreach ($data as $set) { $chartData['datasets'][] = [ 'label' => $set['label'], 'data' => array_values($set['entries']), ]; } return $chartData; } }