【问题标题】:Sort an array by specific values按特定值对数组进行排序
【发布时间】:2014-09-16 13:49:15
【问题描述】:

这是一个场景,我有一个数据库,我需要不同于四个表的数据显示在一个列表中。我无法让查询以正确的顺序和格式提供我需要的结果的方式加入,所以我做了一堆查询并将结果推送到数组。所以现在我有了这个数组,到目前为止效果很好。

为了可视化这一点,我在表格中列出了数据,我需要根据标题对表格进行排序。

接下来我需要做的是如何按特定值对数组进行排序。

例如,我有一个包含值“type”的数组,我想在数组中搜索特定的“types”,然后根据它对数组进行排序。因此,如果“类型”列包含“文件”、“链接”或“测验”等项目,它将按字母顺序排序。

这可能吗?或者我应该以不同的方式思考这个问题?

谁能指出我正确的方向?

【问题讨论】:

  • 从发布代码开始!带有示例数据,例如您的表格结构
  • SELECT column from table WHERE column='something' ORDER BY value - 甚至是LIKE
  • 另一个选项是 in_array()ksort()sort()rsort() 等 - 不过范围很广。

标签: php mysql arrays sorting search


【解决方案1】:

在大多数情况下,让数据库完成工作可能会获得更好的结果,而不是在 PHP 中进行后处理。

正如其他人所说,更多细节和代码示例将使我们能够提供更好的帮助,但基于您所说的:

要将查询结果限制为特定类型,您可以添加 WHERE 子句:

SELECT [whatever columns] FROM table_name WHERE type = 'file'

如果要同时选择多种类型:

SELECT [whatever columns] FROM table_name WHERE type IN ('file', 'link', 'quiz')

如果您想按类型按字母顺序排列:

SELECT [whatever columns] FROM table_name WHERE type IN ('file', 'link', 'quiz') ORDER BY type ASC

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-21
    • 1970-01-01
    • 2016-09-21
    相关资源
    最近更新 更多