iterator_apply

(PHP 5 >= 5.1.0, PHP 7)

iterator_applyCall a function for every element in an iterator

Descrizione

int iterator_apply ( Traversable $iterator , callable $function [, array $args = NULL ] )

Calls a function for every element in an iterator.

Elenco dei parametri

iterator

The iterator object to iterate over.

function

The callback function to call on every element. This function only receives the given args, so it is nullary by default. If count($args) === 3, for instance, the callback function is ternary.

Nota: The function must return TRUE in order to continue iterating over the iterator.

args

An array of arguments; each element of args is passed to the callback function as separate argument.

Valori restituiti

Returns the iteration count.

Esempi

Example #1 iterator_apply() example

<?php
function print_caps(Iterator $iterator) {
    echo 
strtoupper($iterator->current()) . "\n";
    return 
TRUE;
}

$it = new ArrayIterator(array("Apples""Bananas""Cherries"));
iterator_apply($it"print_caps", array($it));
?>

Il precedente esempio visualizzerĂ :

APPLES
BANANAS
CHERRIES

Vedere anche:

  • array_walk() - Esegue una funzione su ogni elemento dell'array

add a note add a note

User Contributed Notes 1 note

up
1
ycgambo at outlook dot com
5 months ago
$args is an array and each of its elements are passed to the callback as separate arguments.

so this is the right way to get args:

<?php
$ai
= new ArrayIterator(range(0, 2));

iterator_apply($ai, function() {
   
var_dump(func_get_args());     // use this func
   
return true;
}, array(
1, 2));
?>

output:

array(2) {
  [0] =>
  int(1)
  [1] =>
  int(2)
}
array(2) {
  [0] =>
  int(1)
  [1] =>
  int(2)
}
array(2) {
  [0] =>
  int(1)
  [1] =>
  int(2)
}

--------------------------------------------------
or list each args:

<?php
$ai
= new ArrayIterator(range(0, 2));

iterator_apply($ai, function($arg1, $arg2, $arg3) {
   
var_dump([$arg1, $arg2, $arg3]);
    return
true;
}, array(
1, 2));
?>

same output.
To Top