SPL迭代器之ArrayIterator

2021-08-25 08:06:27 字數 1413 閱讀 5792

迭代器:通過某種統一的方式遍歷鍊錶或者陣列中的元素的過程叫做迭代遍歷,而這種統一的遍歷工具稱為迭代器。

//spl迭代器之arrayiterator

$fruits = array(

"orange" => "orange value",

"grape" => "grape value",

"plum" => "plum value"

print_r($fruits);

echo "**** use fruits directly *****" . "\n";

foreach ($fruits as $key => $value) {

echo $key . ":" . $value . "\n";

//使用arrayiterator遍歷陣列

$obj = new arrayobject($fruits);

$it = $obj->getiterator();

echo "**** use arrayiterator in foreach *****" . "\n";

foreach ($it as $key => $value) {

echo $key . ":" . $value . "\n";

echo "**** use arrayiterator in while *****" . "\n";

$it->rewind();//呼叫current之前一定要呼叫rewind

while ($it->valid()) {

echo $it->key() . ":" . $it->current() . "\n";

$it->next();//這句一定不能少

//跳過某些元素進行列印

echo "**** use week before while *****" . "\n";

$it->rewind();

if($it->valid()) {

$it->seek(1);

while ($it->valid()) {

echo $it->key() . ":" . $it->current() . "\n";

$it->next();//這句一定不能少

echo "**** use ksort *****" . "\n";//用key進行字典序排序

$it->ksort();

foreach ($it as $key => $value) {

echo $key . ":" . $value . "\n";

echo "**** use asort *****" . "\n";//用value進行字典序排序

$it->asort();

foreach ($it as $key => $value) {

echo $key . ":" . $value . "\n";

PHP迭代器模式(引用SPL實現)

現在有這麼兩個類,department部門類 employee員工類 部門類 class department function addemployee employee e 被分配到中去 員工類 class employee function getname 應用 lsgo new departm...

C 迭代器之 反向迭代器

反向迭代器 reverse iterator 是普通迭代器的介面卡,通過重新定義自增和自減操作,以達到按反序遍歷元素的目的。如果在標準演算法庫中用反向迭代器來代替普通的迭代器,那麼執行結果與正常情況下相反。除此之外,其用法與普通迭代器完全一樣,我們不作詳細討論。這裡主要討論的是反向迭代器的乙個很特殊...

STL之迭代器

除了為每個容器定義的迭代器之外,標準庫在標頭檔案iterator中還定義了額外幾種迭代器,包括 1 插入迭代器 insert iterator 被繫結到乙個容器上,可用來向容器插入元素。2 流迭代器 stream iterator 被繫結到輸入輸出流,可用來遍歷所關聯的io流。3 反向迭代器 rev...