ホームページ  >  記事  >  バックエンド開発  >  PHP根据json中的一个键值排序的

PHP根据json中的一个键值排序的

WBOY
WBOYオリジナル
2016-06-06 20:43:252429ブラウズ

<code class="lang-php">{
    "data":[
            {"roleId":"qai41","role":"qai43","level":"45","sex":"0"},
            {"roleId":"qai41","role":"qai41","level":"78","sex":"0"},
            {"roleId":"qai41","role":"qai42","level":"44","sex":"0"}

          ]
}
</code>

怎么取出level最大的role?

回复内容:

<code class="lang-php">{
    "data":[
            {"roleId":"qai41","role":"qai43","level":"45","sex":"0"},
            {"roleId":"qai41","role":"qai41","level":"78","sex":"0"},
            {"roleId":"qai41","role":"qai42","level":"44","sex":"0"}

          ]
}
</code>

怎么取出level最大的role?

<code>$arr = {
    "data":[
            {"roleId":"qai41","role":"qai43","level":"45","sex":"0"},
            {"roleId":"qai41","role":"qai41","level":"78","sex":"0"},
            {"roleId":"qai41","role":"qai42","level":"44","sex":"0"}

          ]
};
$cache = 0;
$role = '';
for($i=0;$i $cache){
        $cache = $arr['data'][$i]['level'];
        $role = $arr['data'][$i]['role'];
    }
}
最后读取$role就可以了
</code>

<code>$t = json_decode('{
    "data":[
            {"roleId":"qai41","role":"qai43","level":"45","sex":"0"},
            {"roleId":"qai41","role":"qai41","level":"78","sex":"0"},
            {"roleId":"qai41","role":"qai42","level":"44","sex":"0"}

          ]
}', true);
function levelSort($a, $b) {
    if($a['level'] == $b['level']) return 0;
    return ($a['level']</code>

<code>$str = '{
            "data":[
                    {"roleId":"qai41","role":"qai43","level":"45","sex":"0"},
                    {"roleId":"qai41","role":"qai41","level":"78","sex":"0"},
                    {"roleId":"qai41","role":"qai42","level":"44","sex":"0"}

                  ]
        }';
$arr = json_decode($str);
foreach ($arr->data as $k => $v) {
    $t[$v->level] = $v->role;//level做键,role做值
}
krsort($t);//按键逆序排序
$t = array_merge($t);//让键0打头
var_dump($t[0]);//第一个即最大的level的role
</code>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。