2012-04-03 9 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'); 

データはに表示されますタイトルフィールドを基にした配列を配列内に表示しますか?

+0

マイケル:ティムはただ役に立ちました。まず最初に検索することは前提条件の一部ですが、最初に検索/試していないような質問者はほとんどいません。 – halfer

答えて

68

usortは、この目的のために明示的に作成されています。

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

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

ソートを逆にするには-1を掛けることができます。ソートを必要とする可能性のある人にはFYIだけを返すことができます。 –

+14

PHP 5.3を起動すると、匿名関数を使用することができます。これは、特にネームスペースのクラス内にある場合に便利です: 'usort($ domain_array、function($ a、$ b) { return strcmp($ a [ name "]、$ b [" name "]); }); ' –

+1

@ GabiLeeにちょっと追加するだけで、既に設定した変数に基づいて検索フィールドを動的にしたい場合は、次のようにしてください:$ domain_array、function($ a、$ b)use($ searchField){strcmp($ a [$ searchField]、$ b [$ searchField]);})を返します。これは、例えば、ユーザがソートするフィールドを選択できるウェブページ上で有用である。 – stealthysnacks

関連する問題