【问题标题】:Sort multidimensional and associative array by a deeply nested array in PHP通过 PHP 中的深度嵌套数组对多维和关联数组进行排序
【发布时间】:2015-09-30 08:51:39
【问题描述】:

我有一个从数据库中获取的多维数组,它的结构如下:

array(SESSION
      array(items
            array(DatabaseID
                  (ItemName, ItemCategory, Children, 
                                                    array(Id1, Id2, Id3...)         
                                                       etc..))))

由于我是初学者,我不确定你是这样写的,但我希望你能理解结构。如果我想访问某个项目的 ItemCategory,我将项目的 DatabaseID 保存在 $DatabaseID 中并写入:

$_SESSION['items'][$DatabaseID]['ItemCategory'];

如果我想要一个包含我写的子项的 DatabaseID 的数组:

$_SESSION['items'][$DatabaseID]['Children'];

现在,我想对这个数组进行排序。我环顾四周,但我不明白如何按照我想要的方式对其进行排序。我想对整体进行排序

$_SESSION['items']

根据 ItemName 而不是 DatabaseID。这是可能吗?我的意思是,ItemName 是为每个 DatabaseID 存储的......

我想使用它来打印所有按名称而不是 DatabaseID 排序的项目。

编辑

我试过了

array_multisort($_SESSION['items'], $_SESSION['items']['DatabaseID']['ItemName']);

但问题是

 $_SESSION['items']['DatabaseID']['ItemName']

不是数组。

【问题讨论】:

标签: php arrays database sorting


【解决方案1】:

一个更简单、更快捷的解决方案是使用 SQL ORDER BY 子句。

语法是:

SELECT column1, column2, ... FROM table_name ORDER BY column1, column2, ... ASC|DESC;

您应该将此子句添加到您现有的 SQL 语句中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-17
    • 1970-01-01
    • 2011-12-20
    • 1970-01-01
    • 2019-01-10
    • 2012-06-10
    • 2016-04-02
    相关资源
    最近更新 更多