# Ds\Map::sorted

(PECL ds >= 1.0.0)

Ds\Map::sorted — Returns a copy, sorted by value

### 说明

public Ds\Map::sorted(callable `$comparator` = ?): Ds\Map

Returns a copy, sorted by value using an optional `comparator` function.

### 参数

`comparator`

  在第一个参数小于，等于或大于第二个参数时，该比较函数必须相应地返回一个小于，等于或大于 0 的整数。

  callback(mixed `$a`, mixed `$b`): int
  警告

  从比较函数中返回非整数值，例如 float，将导致内部强制转换为 callback 返回值为 int。因此，诸如 `0.99` 和 `0.1` 之类的值都将被转换为整数值 `0`，将这些值比较的话将会是相等。

### 返回值

Returns a copy of the map, sorted by value.

### 示例

示例 #1 Ds\Map::sort() example

`<?php
$map = new \Ds\Map(["a" => 2, "b" => 3, "c" => 1]);
print_r($map->sorted());
?>`

以上示例的输出类似于：

    Ds\Map Object
    (
        [0] => Ds\Pair Object
            (
                [key] => c
                [value] => 1
            )

        [1] => Ds\Pair Object
            (
                [key] => a
                [value] => 2
            )

        [2] => Ds\Pair Object
            (
                [key] => b
                [value] => 3
            )

    )

示例 #2 Ds\Map::sort() example using a comparator

`<?php
$map = new \Ds\Map(["a" => 2, "b" => 3, "c" => 1]);
// Reverse
$sorted = $map->sorted(function($a, $b) {
return $b <=> $a;
});
print_r($sorted);
?>`

以上示例的输出类似于：

    Ds\Map Object
    (
        [0] => Ds\Pair Object
            (
                [key] => b
                [value] => 3
            )

        [1] => Ds\Pair Object
            (
                [key] => a
                [value] => 2
            )

        [2] => Ds\Pair Object
            (
                [key] => c
                [value] => 1
            )

    )

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open