略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: ArrayIterator::current

2024-11-13

ArrayIterator::current

(PHP 5, PHP 7, PHP 8)

ArrayIterator::currentReturn current array entry

说明

public ArrayIterator::current(): mixed

Get the current array entry.

参数

此函数没有参数。

返回值

The current array entry.

范例

示例 #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
add a noteadd a note

User Contributed Notes 1 note

up
-4
pcdinh at phpvietnam dot net
16 years ago
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/>\\\';
}

官方地址:https://www.php.net/manual/en/arrayiterator.current.php

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3