Как искать строку, отличную от указанной в функции подсчета значений массива? - PullRequest
1 голос
/ 09 марта 2020

Я пытаюсь создать диаграмму с помощью Chart. js, однако при попытке подсчета значений из массива возникает проблема. В массиве есть ключ с именем reference со значениями Facebook, Google, Invitation, [Other than all that].

array_count_values(array_filter(array_column(($participants->toArray()), 'reference')))['Facebook'] ?? '0';
array_count_values(array_filter(array_column(($participants->toArray()), 'reference')))['Google'] ?? '0';
array_count_values(array_filter(array_column(($participants->toArray()), 'reference')))['Invitation'] ?? '0';
array_count_values(array_filter(array_column(($participants->toArray()), 'reference')))['Other'] ?? '0';

Мне нужна последняя строка, которая ищет другую строку. Другое должно быть строкой, отличной от Facebook, Google и Invitation . Однако, если есть какой-либо другой способ очистки / правильнее, это также будет полезно. Спасибо!

1 Ответ

1 голос
/ 09 марта 2020

Я думаю, что это будет чище и эффективнее:

$counts = array_count_values(array_filter(array_column(($participants->toArray()), 'reference')));
$facebook = $counts['Facebook'] ?? 0;
$google = $counts['Google'] ?? 0;
$invitation = $counts['Invitation'] ?? 0;
$others = array_sum($counts) - $facebook - $google - $invitation;
...