如何将 array_unique() 与 MySQL 查询的输出一起使用
How do I use array_unique() with the output of MySQL query
我有一个相当复杂的 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]);
}
我做错了什么?
$cnrow['name']
不是数组,在那里调用 array_unique()
是没有意义的。
您在循环完成后对结果数组调用 array_unique()
。
$collecting_names = array();
foreach($db_found->query($sql) as $cnrow) {
$collecting_names[] = $cnrow['name'];
}
$collecting_names = array_unique($collecting_names);
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];
}
我有一个相当复杂的 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]);
}
我做错了什么?
$cnrow['name']
不是数组,在那里调用 array_unique()
是没有意义的。
您在循环完成后对结果数组调用 array_unique()
。
$collecting_names = array();
foreach($db_found->query($sql) as $cnrow) {
$collecting_names[] = $cnrow['name'];
}
$collecting_names = array_unique($collecting_names);
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];
}