php - 除了在数组计数值函数中指定之外,如何搜索字符串?
问题描述
我正在尝试使用 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';
我想要寻找其他字符串的最后一行。Other 应该是除 Facebook、Google 和 Invitation 之外的字符串。但是,如果有任何其他更清洁/正确的方法也会有所帮助。谢谢!
解决方案
我认为这会更清洁,更有效:
$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;
推荐阅读
- c# - 如何设置从文本框中打印的份数到 ptinter
- python-3.x - Python - 如何将相等的项分组为两列并在 numpy 矩阵的第三列中添加所有项......使用 pandas 或 numpy?
- c - 如何在不等待换行的情况下在 C 中获取用户输入?
- java - 在Java中分隔十进制值
- typescript - 无需按键即可查看 VS Code 中 Typescript Prop 的所有 Intellisense 选项
- json - 访问 Json 数据
- c# - 没有注册 Func 的 C# DI Func 工厂?
- cassandra - cassandra cql中的限制有什么影响
- merge - Power Query 压缩多个合并操作
- c++ - 使用 move 从派生类分配基础数据会产生错误