ArrayIterator::current

(PHP 5, PHP 7, PHP 8)

ArrayIterator::current返回当前数组条目

描述

public ArrayIterator::current(): 混合

获取当前 数组 条目。

参数

此函数没有参数。

返回值

当前 数组 条目。

示例

示例 #1 ArrayIterator::current() 示例

<?php
$array
= array('1' => 'one',
'2' => 'two',
'3' => 'three');

$arrayobject = new ArrayObject($array);

for(
$iterator = $arrayobject->getIterator();
$iterator->valid();
$iterator->next()) {

echo
$iterator->key() . ' => ' . $iterator->current() . "\n";
}
?>

上面的示例将输出

1 => one
2 => two
3 => three

添加备注

用户贡献的备注 1 条备注

pcdinh at phpvietnam dot net
18 年前
ArrayIterator 仅用于迭代其值部分不是另一个数组的简单数组。你可以使用更复杂的数组进行测试,如下所示

$arr = array (
\\\'Section 1\\\' => array (
\\\'Cat 1\\\' => array (
1 => array (
1 => \\\'So 1\\\',
2=> \\\'So 2\\\'
),
2 => \\\'So 2\\\'
),

\\\'Cat 2\\\' => array (
\\\'Sub-cat 1\\\' => array (
1 => \\\'So 1\\\',
2=> \\\'So 2\\\'
),
\\\'Sub-cat 2\\\' => \\\'So 2\\\'
)
),

\\\'Section 2\\\' => array (
\\\'Cat 1\\\' => array (

),

\\\'Cat 2\\\' => array (
\\\'Sub-cat 1\\\' => array (
1 => \\\'So 1\\\',
2=> \\\'So 2\\\'
),
\\\'Sub-cat 2\\\' => \\\'So 2\\\'
)
)
);

$arrayobject = new ArrayObject($arr);

for($iterator = $arrayobject->getIterator();
$iterator->valid();
$iterator->next()) {

echo $iterator->key() . \\\' => \\\' . $iterator->current() . \\\"<br />\\\";
}

上面的脚本将返回

Section 1 => Array
Section 2 => Array

因为它无法递归地遍历数组。

改为执行以下操作(在 PHP5.1 中)

$arrayIterator = new RecursiveArrayIterator($arr);
$iterator = new RecursiveIteratorIterator($arrayIterator);
foreach ($iterator as $val) {
echo $val.\\\'<br/>\\\';
}
To Top