ホームページ > バックエンド開発 > PHPチュートリアル > PHP根据json中的一个键值排序的

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-06 20:43:25
オリジナル
2512 人が閲覧しました

1

2

3

4

5

6

7

8

{

    "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"}

 

          ]

}

ログイン後にコピー
ログイン後にコピー

怎么取出level最大的role?

回复内容:

1

2

3

4

5

6

7

8

{

    "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"}

 

          ]

}

ログイン後にコピー
ログイン後にコピー

怎么取出level最大的role?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<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<3;$i++){

    if($arr['data'][$i]['level'] > $cache){

        $cache = $arr['data'][$i]['level'];

        $role = $arr['data'][$i]['role'];

    }

}

最后读取$role就可以了

</code>

ログイン後にコピー

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<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']<$b['level']) ? 1 : -1;

}

 

usort($t['data'], 'levelSort');

print_r($t['data'][0]['roleId']);

</code>

ログイン後にコピー

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<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>

ログイン後にコピー

関連ラベル:
php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
PHP 拡張子 intl
から 1970-01-01 08:00:00
0
0
0
phpのデータ取得?
から 1970-01-01 08:00:00
0
0
0
PHP GET エラー レポート
から 1970-01-01 08:00:00
0
0
0
phpを上手に学ぶ方法
から 1970-01-01 08:00:00
0
0
0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート