I experimented what happens when arrays are inserted:
<?php
$heap = new SplMinHeap();
$heap->insert([22,333]);
$heap->insert([2,33]);
$heap->insert([222,3]);
var_export($heap->extract());
echo '<br>';
var_export($heap->extract());
echo '<br>';
var_export($heap->extract());
?>
Output:
array ( 0 => 2, 1 => 33, )
array ( 0 => 22, 1 => 333, )
array ( 0 => 222, 1 => 3, )
PHP.mk документација
SplMinHeap
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
class.splminheap.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + превод во позадина
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
class.splminheap.php
SplMinHeap
Референца за `class.splminheap.php` со подобрена типографија и навигација.
Класата SplMinHeap
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
Вовед
Класата SplMinHeap ги обезбедува главните функционалности на хип, задржувајќи го минимумот на врвот.
Синопсис на класата
/* Методи */
/* Наследени методи */
}Содржина
- SplMinHeap::compare — Споредете ги елементите за да ги поставите правилно во хипот при просејување нагоре
Белешки од корисници 2 забелешки
gom ¶
пред 6 години
andy at nospam dot airslash dot net ¶
Nimja
To expand on gom's comment, SplMinHeap will also take into account the subsequent elements of the array you inserted, if the elements before that are equal.
<?php
$heap = new SplMinHeap();
$heap->insert([0, 10]);
$heap->insert([0, 30]);
$heap->insert([0, 15]);
while (!$heap->isEmpty()) {
[$a, $b] = $heap->extract();
echo "a:$a, b:$b\n";
}
echo "---\n";
$heap->insert([0, 10, 100]);
$heap->insert([0, 10, 300]);
$heap->insert([0, 10, 150]);
while (!$heap->isEmpty()) {
[$a, $b, $c] = $heap->extract();
echo "a:$a, b:$b, c:$c\n";
}
?>
will output:
a:0, b:10
a:0, b:15
a:0, b:30
---
a:0, b:10, c:100
a:0, b:10, c:150
a:0, b:10, c:300