2012-05-07 11 views
0

可能性の重複配列内の配列をソートする方法:
PHP sort multidimensional array by valuePHP - 個々のキーによって

を私はquestions with similar titlesかかわらず見てきたし、私の質問への答えを見つけることができませんでした。私もかなりasortまたはusortの機能を私の問題に実装する方法を見つけることができません。

だから私は配列を持っている:

array 
{ 
    array 
    { 
     'name' => 'name1', 
     'price' => '100', 
     'grade' => '4.4' 
    }, 
    array 
    { 
     'name' => 'name16', 
     'price' => '12', 
     'grade' => '1.2' 
    }, 
    array 
    { 
     'name' => 'name3', 
     'price' => '143', 
     'grade' => '2.4' 
    } 
} 

は、出力は、たとえばになるように、nameまたはpriceまたはgradeによってこの配列を注文する方法があります:(name順)が

array 
{ 
    array 
    { 
     'name' => 'name1', 
     'price' => '100', 
     'grade' => '4.4' 
    }, 
    array 
    { 
     'name' => 'name3', 
     'price' => '143', 
     'grade' => '2.4' 
    }, 
    array 
    { 
     'name' => 'name16', 
     'price' => '12', 
     'grade' => '1.2' 
    } 
} 

答えて

4

usort

+0

昇順または降順によるキーをソートする方法が存在する:多次元配列をソートするためにクロージャを使用して、PHP.net位4'th例に – Eric

+0

見て、この給餌方法は決して助けません。彼らは持ち込まれた例を*使用することすらできません。 –

2

http://php.net/usort - 究極のソーティングソリューション。

function build_sorter($key) { 
    return function ($a, $b) use ($key) { 
     return strnatcmp($a[$key], $b[$key]); 
    }; 
} 

usort($array, build_sorter('name')); 
usort($array, build_sorter('price')); 
usort($array, build_sorter('grade')); 
関連する問題