©
Ce document utilise Manuel du site Web PHP chinois Libérer
(PHP 5 >= 5.0.0)
ArrayIterator::current — Return current array entry
Get the current array entry.
此函数没有参数。
The current array entry.
Example #1 ArrayIterator::current() example
<?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 [2006-03-20 05:47:14]
ArrayIterator is only used for interating simple arrays of which the value part is not another array. You can test it with a more complex array like this:
$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 />\\\";
}
The above scriptlet will return
Section 1 => Array
Section 2 => Array
because it can not recursively iterate throught the array.
Do the following instead (in PHP5.1):
$arrayIterator = new RecursiveArrayIterator($arr);
$iterator = new RecursiveIteratorIterator($arrayIterator);
foreach ($iterator as $val) {
echo $val.\\\'<br/>\\\';
}