牛牛在线工具

SplPriorityQueue::compare()

收录 8868 个 PHP 函数,含用途说明与用法示例。

SplPriorityQueue::compare()

比较两个元素的优先级

函数名:SplPriorityQueue::compare() 适用版本:PHP 5 >= 5.3.0, PHP 7 用法: SplPriorityQueue::compare() 函数用于比较两个元素的优先级。它是SplPriorityQueue类的一个方法,用于自定义比较函数。在使用SplPriorityQueue类时,可以通过compare()方法来指定自定义的比较函数。 语法: public SplPriorityQueue::compare ( mixed $priority1 , mixed $priority2 ) : int 参数: $priority1: 第一个元素的优先级 $priority2: 第二个元素的优先级 返回值: 比较结果的整数值。如果 $priority1 的优先级高于 $priority2,则返回一个正整数;如果 $priority1 的优先级低于 $priority2,则返回一个负整数;如果两个优先级相等,则返回 0。 示例: 下面是一个使用SplPriorityQueue::compare()方法的示例,展示了如何自定义比较函数来排序元素: // 创建一个SplPriorityQueue对象 $queue = new SplPriorityQueue(); // 定义自定义的比较函数 function myCompare($priority1, $priority2) { if ($priority1 == $priority2) { return 0; } return ($priority1 > $priority2) ? -1 : 1; } // 设置自定义的比较函数 $queue->setExtractFlags(SplPriorityQueue::EXTR_DATA); $queue->setExtractFlags(SplPriorityQueue::EXTR_PRIORITY); $queue->setCompare('myCompare'); // 添加元素到队列 $queue->insert('Item 1', 3); $queue->insert('Item 2', 1); $queue->insert('Item 3', 2); // 迭代输出队列中的元素 foreach ($queue as $item) { echo $item . "\n"; } 输出结果: Item 2 Item 3 Item 1 在上面的示例中,我们首先创建了一个SplPriorityQueue对象。然后,我们定义了一个名为myCompare的自定义比较函数,根据优先级的不同返回不同的值。接下来,我们使用setCompare()方法设置自定义的比较函数。最后,我们使用insert()方法将元素添加到队列中,并使用foreach循环迭代输出队列中的元素。由于我们自定义的比较函数,队列中的元素按照优先级从高到低的顺序输出。