SPL迭代器之ArrayIterator

本文通过实例演示了如何使用 PHP 的 SPL 扩展中的 ArrayIterator 类来遍历数组,并展示了如何利用其内置的方法进行排序、跳过指定元素等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

迭代器:通过某种统一的方式遍历链表或者数组中的元素的过程叫做迭代遍历,而这种统一的遍历工具称为迭代器。

//SPL迭代器之ArrayIterator

$fruits = array(

"apple" => "apple value",

"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";

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值