2012-04-03 70 views
22

可能重复:
how to sort a multidemensional array by an inner key
How to sort an array of arrays in php?PHP按字段排序数组?

我怎样才能有点像数组:$array[$i]['title'];

阵列结构可能是这样的:

array[0](
'id' => 321, 
'title' => 'Some Title', 
'slug' => 'some-title', 
'author' => 'Some Author', 
'author_slug' => 'some-author'); 

array[1](
'id' => 123, 
'title' => 'Another Title', 
'slug' => 'another-title', 
'author' => 'Another Author', 
'author_slug' => 'another-author'); 

所以数据显示在ASC订单基于标题字段在数组中?

+0

迈克尔:蒂姆只是在帮助。首先进行搜索是这里的一个先决条件,我们可以得到一个似乎并未先搜索/尝试的提问者。 – halfer 2012-04-03 19:39:02

回答

68

使用usort为此目的明确构建。

function cmp($a, $b) 
{ 
    return strcmp($a["title"], $b["title"]); 
} 

usort($array, "cmp"); 
+11

您也可以乘以-1来逆转排序,只是给所有需要这样做的人提供了一个供参考。 – 2014-02-13 21:30:26

+14

从PHP 5.3开始,您可以使用匿名函数,如果您位于名称空间中的类中,这非常有帮助: 'usort($ domain_array,function($ a,$ b) { return strcmp($ a [名称“],$ b [”名称“]); }); ' – 2016-10-11 08:35:27

+1

只需添加一点到@GabiLee,如果您希望搜索字段基于您已设置的某个变量进行动态设置,请尝试以下操作:usort($ domain_array,function($ a,$ b)use($ searchField){return strcmp($ a [$ searchField],$ b [$ searchField]);});例如,在用户可以选择要排序的字段的网页上,这可能很有用。 – stealthysnacks 2017-02-14 22:26:27