【发布时间】:2021-02-04 16:36:13
【问题描述】:
我正在为我们公司的 Intranet 网站制作报告仪表板。下面的功能是从一个表中选择所有的工作和后缀。我正在使用 PDO fetchall 来检索我的结果。数组看起来像:
Array
(
[0] => Array
(
[JOB] => 197182
[SUFFIX] => 002
)
[1] => Array
(
[JOB] => M03001
[SUFFIX] => 001
)
[2] => Array
(
[JOB] => 197182
[SUFFIX] => 002
)
)
在这种情况下,仪表板应该有 2 行,每个作业 1 行(不包括重复的)但是我如何搜索这个数组并让它只返回 2 而不是 3 的行数?由于有重复的作业和后缀,我不想创建具有相同作业后缀的第三行,所以它应该只有两行。
function row_count()
{
$conn = new PDO('odbc:GLOBALTST');
$result = $conn->prepare('SELECT JOB, SUFFIX FROM JOBS_IN_PROCESS_G');
$result->execute();
$row = $result->fetchall(PDO::FETCH_ASSOC);
global $count;
$count = count($row);\\ if I print this out I get 3
}
【问题讨论】:
-
array_unique()? -
@Jaquarh per the php documentation on array_unique 此函数不适用于多维数组。
-
在这种情况下,一个简单的循环和未设置的跟踪重复就足够了。但是依靠你的数据层来处理它可能会更好,如果它可能是一个反复出现的主题,你也可以为它创建一个视图。
-
为什么不在 SQL 中执行计数?