
SplPriorityQueue::key를 사용하여 데이터를 삽입하고 삭제하는 방법은 다음과 같습니다.
1. 데이터를 삽입할 때, key의 값이 동일한 경우는 데이터의 중복을 방지하기 위해 SplPriorityQueue::offsetSet() 메소드를 사용할 수 있습니다. 이 메소드는 데이터가 중복되면 false를 반환합니다.
#hostingforum.kr
php
$pq = new SplPriorityQueue();
$pq->insert('A', 1);
$pq->insert('B', 2);
$pq->insert('C', 3);
// key의 값이 동일한 데이터를 삽입할 때
$pq->offsetSet('D', 2); // 데이터가 중복되면 false를 반환합니다.
2. 데이터를 삽입할 때, key의 값이 동일한 경우는 데이터의 중복을 방지하기 위해 SplPriorityQueue::insert() 메소드의 두 번째 인자에 데이터의 중복 여부를 판단하는 함수를 전달할 수 있습니다.
#hostingforum.kr
php
$pq = new SplPriorityQueue();
$pq->insert('A', 1);
$pq->insert('B', 2);
$pq->insert('C', 3);
// key의 값이 동일한 데이터를 삽입할 때
function isDuplicate($key) {
global $pq;
foreach ($pq as $item) {
if ($item == $key) {
return true;
}
}
return false;
}
$pq->insert('D', 2, 'D', isDuplicate);
3. 데이터를 삽입할 때, key의 값이 동일한 경우는 데이터의 중복을 방지하기 위해 SplPriorityQueue::insert() 메소드의 두 번째 인자에 데이터의 중복 여부를 판단하는 함수를 전달할 수 있습니다. 이 함수는 key의 값이 동일한 데이터가 존재하는지 여부를 반환합니다.
#hostingforum.kr
php
$pq = new SplPriorityQueue();
$pq->insert('A', 1);
$pq->insert('B', 2);
$pq->insert('C', 3);
// key의 값이 동일한 데이터를 삽입할 때
function isDuplicate($key) {
global $pq;
foreach ($pq as $item) {
if ($item == $key) {
return true;
}
}
return false;
}
$pq->insert('D', 2, 'D', function($key) use ($pq) {
foreach ($pq as $item) {
if ($item == $key) {
return true;
}
}
return false;
});
이러한 방법들 중 하나를 사용하여 key의 값이 동일한 데이터를 삽입할 수 있습니다.
2025-07-14 06:38