• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • SplPriorityQueue::compare()

    (PHP 5 >= 5.3.0, PHP 7)

    Compare priorities in order to place elements correctly in the heap while sifting up

    说明

    publicSplPriorityQueue::compare(mixed $priority1, mixed $priority2) : int

    Compare $priority1with $priority2.

    参数

    $priority1

    The priority of the first node being compared.

    $priority2

    The priority of the second node being compared.

    返回值

    Result of the comparison, positive integer if $priority1 is greater than $priority2, 0 if they are equal, negative integer otherwise.

    Note:

    Multiple elements with the same priority will get dequeued in no particular order.

    At this time, the documentation sais "Note: Multiple elements with the same priority will get dequeued in no particular order."
    If you need elements of equal priority to maintain insertion order, you can use something like:
    <?php
    class StablePriorityQueue extends SplPriorityQueue {
      protected $serial = PHP_INT_MAX;
      public function insert($value, $priority) {
        parent::insert($value, array($priority, $this->serial--));
      }
    }
    ?>