ホームページ  >  記事  >  バックエンド開発  >  配列のソートを解決する方法についてアドバイスをお願いします。

配列のソートを解決する方法についてアドバイスをお願いします。

WBOY
WBOYオリジナル
2016-06-13 13:44:52793ブラウズ

アドバイスをいただきたいのですが、配列ソート
があり、b1とaを基準に2回ソートしたいのですが、b1が異なる場合はb1の正の順にソートします。それは a の正の順序です。高い効率が求められます。

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
array(
    [0] = array(
        ['a'] = 323,
        ['b'] = array(
            ['b1'] = 1
            )
        )    
    [1] = array(
        ['a'] = 234,
        ['b'] = array(
            ['b1'] = 1
            )
        )
    [2] = array(
        ['a'] = 135,
        ['b'] = array(
            ['b1'] = 2
            )
        )
)



------解決策------ -
これはどういう意味ですか?
PHP コード
<?php
関数 cmp($a,$b){
    return $a['b']['b1'] == $b['b']['b1']?($a['a'] - $b['a']):($a[ 'b']['b1'] - $b['b']['b1']);
}

$array = array(0=>array('a'=>323,'b'=>array('b1'=>1)),
               1=>配列('a'=>324,'b'=>配列('b1'=>1)),
               2=>配列('a'=>135,'b'=>配列('b1'=>2)),
);

usort($array,'cmp');
var_export($array);
<br><font color="#e78608">------解決策---------</font><br>
話し合う
これはどういう意味ですか?

PHP コード
function cmp($a,$b){
return $a['b']['b1'] == $b[' b']['b1']?($a['a'] - $b['a']):($a['b']['b1'] - $b['b'][' b1']);
}

$array = array(0=>array('a'=>323,'b'=>array('b1'=>1) ……
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。