PHP foreach SplPriorityQueue - не могу найти элементы - PullRequest
3 голосов
/ 27 декабря 2011

У меня есть следующий код:

    $friendsOrdered= new SplPriorityQueue();
    ... // Code to fill up the priority queue
    print_r($friendsOrdered);
    $i = 0;
    foreach($friendsOrdered as $f) {
    }
    echo "<br><br>";
    print_r($friendsOrdered);

Когда я смотрю на вывод отпечатков, я вижу, что после цикла очередь с приоритетами пуста.Есть ли способ остановить foreach от удаления элементов?

Спасибо!

1 Ответ

3 голосов
/ 27 декабря 2011

Вы не можете остановить цикл от удаления элементов, так как это характер структуры данных.Однако вы можете создать копию объекта до цикла, чтобы ваши данные не были потеряны:

$friendsOrdered_copy = clone $friendsOrdered;
foreach($friendsOrdered_copy as $f) {
    // ...
}
...