【发布时间】:2018-10-04 05:20:37
【问题描述】:
我在 PHP 中查询一个数据库,它会得到如下表所示的结果。它们存储在关联数组中。
我现在想要做的是只选择某个work_type 的记录并返回相同类型的associative array。例如"Part Time"。然后我希望能够根据我决定的任何列对这些记录进行排序。我该怎么做?
据我所知……
$data = $_SESSION['results']; //the database query results
foreach($data as $key => $row)
{
if(in_array($row['work_type'], array('Part Time')))
{
$type[$key] = $row['work_type'];
$date_posted[$key] = $row['created_at'];
}
}
array_multisort($type, SORT_ASC, $date_posted, SORT_ASC, $data);
这不起作用,因为我发送到multi-sort 的 $data 数组现在与我创建的数组的大小不同。
【问题讨论】:
-
什么是
array('Part Time')?? -
array_filter 比这里的 foreach 循环过滤结果更有意义,因此您只有某种类型的记录。不过,将 WHERE 子句添加到数据库查询中会更有意义。同样,可以使用
ORDER BY进行排序,假设这是 SQL 或其任何方言。 -
您可能想检查
https://datatables.net/的表格排序。 -
只重新查询数据库还是在PHP中对数组进行排序更有效?
-
array('Part Time') 是因为 in_array 不允许我将 row['work_type'] 与字符串进行比较。
标签: php sorting associative-array columnsorting