PHP - Ds Map::ksorted() 函式



PHP 的 Ds\Map::ksorted() 函式用於檢索當前對映按鍵排序的副本。

鍵的預設排序順序為升序。但是,您可以傳遞一個可選的比較函式,該函式比較引數並返回一個小於、等於或大於零的整數值,如果第一個引數分別小於、等於和大於第二個引數。

語法

以下是 PHP Ds\Map::ksorted() 函式的語法:

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

引數

以下是此函式的引數:

  • comparator - 一個可選的比較函式,比較指定的引數。

以下是 comparator 函式的語法:

callback(mixed $a, mixed $b): int

返回值

此函式返回對映的副本,按鍵排序。

示例 1

以下程式演示了 PHP Ds\Map::ksorted() 函式的使用:

<?php 
   $map = new \Ds\Map([2 => 20, 1 => 10, 3 => 30]);
   echo "The map elements are: \n";
   print_r($map);
   echo "The sorted map by key: \n"; 
   #using the ksorted() function
   print_r($map->sorted());
?> 

輸出

以上程式產生以下輸出:

The map elements are:
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => 2
            [value] => 20
        )

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

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

)
The sorted map by key:
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => 1
            [value] => 10
        )

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

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

)

示例 2

以下是 PHP Ds\Map::ksorted() 函式的另一個示例。我們使用此函式透過此對映的鍵檢索排序的對映(["a" => "Tutorials", "c" => "Point", "b" => "India"]):

<?php 
   $map = new \Ds\Map(["a" => "Tutorials", "c" => "Point", "b" => "India"]);
   echo "The map elements are: \n";
   foreach($map as $key=>$value){
	   echo "[".$key."] = ".$value."\n";
   }
   echo "\nThe sorted map by key: \n"; 
   #using the ksorted() function
   $new_map = $map->ksorted();
   foreach($new_map as $key=>$value){
	   echo "[".$key."] = ".$value."\n";
   }
?>

輸出

執行上述程式後,它將顯示以下輸出:

The map elements are:
[a] = Tutorials
[c] = Point
[b] = India

The sorted map by key:
[a] = Tutorials
[b] = India
[c] = Point

示例 3

如果提供了可選的比較器函式,它將比較對映元素並根據比較返回整數值:

<?php  
   $map = new \Ds\Map([2 => 'a', 0 => 'b', 1 => 'c']);
   echo "The map elements are: \n";
   foreach($map as $key=>$value){
	   echo "[".$key."] = ".$value."\n";
   }
   echo "The sorted map by key \n";
   #using ksorted() & comparator function
   $new_map = $map->ksorted(function($a, $b){
	   return $a<=>$b;
   });
   foreach($new_map as $key=>$value){
	   echo "[".$key."] = ".$value."\n";
   } 
?>

輸出

執行上述程式後,它將生成以下輸出:

The map elements are:
[2] = a
[0] = b
[1] = c
The sorted map by key
[0] = b
[1] = c
[2] = a
php_function_reference.htm
廣告