php - 如何在 MySQL 查询的输出中使用 array_unique()
问题描述
我有一个相当复杂的 MySQL 调用,它会产生类似这样的简单输出;
name timestamp comm1 comm2 counter
Bill 2021-04-18 19:31:00 data data 1
Bill 2021-04-18 19:32:00 data data 2
Bill 2021-04-18 19:33:00 data data 3
Bill 2021-04-18 19:34:00 data data 4
Tom 2021-04-18 19:31:00 data data 1
Tom 2021-04-18 19:35:00 data data 2
Tom 2021-04-18 19:37:00 data data 3
Tom 2021-04-18 19:38:00 data data 4
...以及更多行。
使用 PHP,我想创建一个仅包含名称唯一值的数组。所以在这种情况下比尔和汤姆。我想我会使用 foreach 将 8 个名称中的每一个放入一个数组中,然后使用 array_unique 将其归结为两个。但我不清楚如何做到这一点,听起来很简单,经过各种尝试都没有奏效。
$collecting_names = array();
foreach($db_found->query($sql) as $cnrow) {
$collecting_stations = array_unique($cnrow[name]);
}
我究竟做错了什么?
解决方案
Array_unique 在您完成构建数组后应用
$collecting_names = array();
foreach($db_found->query($sql) as $cnrow) {
$collecting_names[] = $cnrow[name];
}
$collecting_names = array_unique($collecting_names);
您也可以在添加之前检查它是否存在。
$collecting_names = array();
foreach($db_found->query($sql) as $cnrow) {
if (!in_array($cnrow[name], $collecting_names)) $collecting_names[] = $cnrow[name];
}
推荐阅读
- amazon-web-services - ECS:docker ps 不打印正在运行的任务
- android - Android 应用程序已停止并尝试在空对象引用上调用虚拟方法
- r - 多变量 tidyr 旋转
- highcharts - Highchart 实心量规图表使一端笔直/正常
- plpgsql - FOR 循环中的选择查询在 Netezza 中不起作用
- c# - Visual Studio 无法识别自定义组件
- python - 您可以使用 NumPy 操作在 Keras 中编写自定义损失函数吗?
- c# - 在没有显式引用的方法上调用扩展方法
- ios - iOS 13 位置授权流程中的错误?
- sql - 将 BirthDate 转换为年份