请教一个PHP排序的问题

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

我要对数组进行数值排序,代码如下:

1

2

3

4

<code>$a = array('a' => 10, 'z' => 10, 'c' => 10, 'b' => 11, 'd' => 10);

asort($a, SORT_NUMERIC);

var_dump($a);

</code>

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

打印结果如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

<code>array(5) {

  'd' =>

  int(10)

  'a' =>

  int(10)

  'c' =>

  int(10)

  'z' =>

  int(10)

  'b' =>

  int(11)

}

</code>

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

问题:

  • 我需要对数值进行排序(已实现)
  • 若数值相同,则数组键的顺序位置不改变,请问如何做到

举例:
上面的数组

1

2

<code>$a = array('a' => 10, 'z' => 10, 'c' => 10, 'b' => 11, 'd' => 10);

</code>

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

根据上面排序后,键的顺序依次为

d => 10, a => 10, c => 10, z => 10, b => 11

我希望能实现的顺序为为

a => 10, z => 10, c => 10, d => 10, b => 11

回复内容:

我要对数组进行数值排序,代码如下:

1

2

3

4

<code>$a = array('a' => 10, 'z' => 10, 'c' => 10, 'b' => 11, 'd' => 10);

asort($a, SORT_NUMERIC);

var_dump($a);

</code>

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

打印结果如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

<code>array(5) {

  'd' =>

  int(10)

  'a' =>

  int(10)

  'c' =>

  int(10)

  'z' =>

  int(10)

  'b' =>

  int(11)

}

</code>

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

问题:

  • 我需要对数值进行排序(已实现)
  • 若数值相同,则数组键的顺序位置不改变,请问如何做到

举例:
上面的数组

1

2

<code>$a = array('a' => 10, 'z' => 10, 'c' => 10, 'b' => 11, 'd' => 10);

</code>

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

根据上面排序后,键的顺序依次为

d => 10, a => 10, c => 10, z => 10, b => 11

我希望能实现的顺序为为

a => 10, z => 10, c => 10, d => 10, b => 11

http://3v4l.org/fsQkS

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

<code>function hasort($arr) {

    $a = $b = array();

    foreach($arr as $v => $k) $a[$k][] = $v;

    ksort($a);

    foreach($a as $v => $i)

        foreach($i as $k) $b[$k] = $v;

    return $b;

}

$a = array('a' => 10, 'z' => 10, 'c' => 10, 'b' => 11, 'd' => 10);

$a = hasort($a);

print_r($a);

/**

Array

(

    [a] => 10

    [z] => 10

    [c] => 10

    [d] => 10

    [b] => 11

)

**/

</code>

ログイン後にコピー
関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート