CakeFest 2024: The Official CakePHP Conference

ArrayIterator::current

(PHP 5, PHP 7, PHP 8)

ArrayIterator::currentDevuelve la entrada actual del array

Descripción

public ArrayIterator::current(): mixed

Obtiene la entrada actual del array.

Parámetros

Esta función no tiene parámetros.

Valores devueltos

La entrada actual del array.

Ejemplos

Ejemplo #1 Ejemplo de ArrayIterator::current()

<?php
$array
= array('1' => 'uno',
'2' => 'dos',
'3' => 'tres');

$arrayobject = new ArrayObject($array);

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

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

El resultado del ejemplo sería:

1 => uno
2 => dos
3 => tres

add a note

User Contributed Notes 1 note

up
-7
pcdinh at phpvietnam dot net
18 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/>\\\';
}
To Top