通过PHP

时间:2015-09-30 08:51:40

标签: php arrays database sorting

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

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

我不确定这是你怎么写的,因为我是初学者,但我希望你能得到结论。如果我想访问某个项目的ItemCategory,我将项目的DatabaseID保存在$ DatabaseID中并写入:

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

如果我想要一个包含子项目数据库ID的数组我写道:

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

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

$_SESSION['items']

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

存储ItemName

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

修改

我试过了

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

但问题在于

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

不是数组。

1 个答案:

答案 0 :(得分:0)

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

语法是:

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

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