-2

重複の可能性:
PHP: 多次元配列のソート ($arr[$i]['v'])

UNSORTED VERSION タイプの配列があります。

$arr['foo']['man']      = 5;
$arr['foo']['str']      = 'string5';
$arr['foobar']['man']   = 2;
$arr['foobar']['str']   = 'string2';
$arr['barfoo']['man']   = 4;
$arr['barfoo']['str']   = 'string4';
$arr['foofoo']['man']   = 1;
$arr['foofoo']['str']   = 'string1';
$arr['bar']['man']      = 3;
$arr['bar']['str']      = 'string3';

その配列内の他のすべてのデータを保持しながら、降順で並べ替えたい、つまり

$arr['foo']['man']      = 5;
$arr['foo']['str']      = 'string5';
$arr['barfoo']['man']   = 4;
$arr['barfoo']['str']   = 'string4';
$arr['bar']['man']      = 3;
$arr['bar']['str']      = 'string3';
$arr['foobar']['man']   = 2;
$arr['foobar']['str']   = 'string2';
$arr['foofoo']['man']   = 1;
$arr['foofoo']['str']   = 'string1';

PHP で多くのソート関数を見てきましたが、解決策は見つかりませんでした。

誰でも私を助けることができますか?前もって感謝します。

4

2 に答える 2

2

uasortカスタム比較 callable を使用して渡します。

function compareItems($a, $b) {
    return $b['man'] - $a['man'];
}

uasort($arr, 'compareItems');
于 2012-07-21T14:04:24.780 に答える
1
uasort($arr, function($l, $r){
    return $r['man'] - $l['man'];
})
于 2012-07-21T14:04:13.630 に答える