class MaxHeap extends SplHeap{ public function compare($value1, $value2) { return ($value1 - $value2); } public function GetKMinNum($arr, $k){ if(is_array($arr) && $k > 0){ $count = count($arr); for($i=0; $i<$count; $i++){ if($i < $k){ $this->insert($arr[$i]); }else{ $top = $this->top(); if($top > $arr[$i]){ $this->extract(); $this->insert($arr[$i]); } } } } return $this; } }
$heap = new MaxHeap(); $arr = array(); for($i=0; $i<100000; $i++){ $arr[] = rand(100, 1000000); } $min = $heap->GetKMinNum($arr, 7); foreach($min as $val){ echo $val . '<br/>'; }
위 내용은 배열에서 가장 작은 K 값을 얻기 위한 PHP의 SPL 표준 라이브러리 사용 방법을 소개하며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.