PHP 5.4.33 Released

iterator_to_array

(PHP 5 >= 5.1.0)

iterator_to_array Copie un itérateur dans un tableau

Description

array iterator_to_array ( Traversable $iterator [, bool $use_keys = true ] )

Copie les éléments d'un itérateur dans un tableau.

Liste de paramètres

iterator

L'itérateur à copier.

use_keys

S'il faut utiliser les éléments de l'itérateur comme clé.

En PHP 5.5 et suivants, si une clé est un array ou un object, une alerte sera générée. Les clés NULL seront converties en une chaîne vide, les clés de type double seront tronquées en leurs parties integer, les clés de type resource génèreront une alerte et seront converties en identifiant de la ressource, et les clés de type boolean seront converties en entiers.

Valeurs de retour

Un tableau contenant les éléments de l'itérateur iterator.

Historique

Version Description
5.5.0 iterator_to_array() supporte désormais les clés de types autres que integer et string lorsque le paramètre use_keys est activé.
5.2.1 Ajout du paramètre use_keys.

Exemples

Exemple #1 Exemple avec iterator_to_array()

<?php
$iterator 
= new ArrayIterator(array('recipe'=>'crêpes''oeufs''lait''farine'));
var_dump(iterator_to_array($iteratortrue));
var_dump(iterator_to_array($iteratorfalse));
?>

L'exemple ci-dessus va afficher :

array(4) {
  ["recipe"]=>
  string(7) "crêpes"
  [0]=>
  string(5) "oeufs"
  [1]=>
  string(4) "lait"
  [2]=>
  string(6) "farine"
}
array(4) {
  [0]=>
  string(7) "crêpes"
  [1]=>
  string(5) "oeufs"
  [2]=>
  string(4) "lait"
  [3]=>
  string(6) "farine"
}

add a note add a note

User Contributed Notes 2 notes

up
1
jerome at yazo dot net
5 years ago
Using the boolean param :

<?php

$first
= new ArrayIterator( array('k1' => 'a' , 'k2' => 'b''k3' => 'c''k4' => 'd') );
$second = new ArrayIterator( array( 'k1' => 'X', 'k2' => 'Y', 'Z' ) );

$combinedIterator= new AppendIterator();
$combinedIterator->append( $first );
$combinedIterator->append( $second );

var_dump( iterator_to_array($combinedIterator, false) );

?>

will output :

array(7) (
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
  [3]=>
  string(1) "d"
  [4]=>
  string(1) "X"
  [5]=>
  string(1) "Y"
  [6]=>
  string(1) "Z"
)

<?php

var_dump
( iterator_to_array($combinedIterator, true) );

?>

will output (since keys would merge) :

array(5) (
  ["k1"]=>
  string(1) "X"
  ["k2"]=>
  string(1) "Y"
  ["k3"]=>
  string(1) "c"
  ["k4"]=>
  string(1) "d"
  [0]=>
  string(1) "Z"
)
up
0
chad 0x40 herballure 0x2e com
6 years ago
The use_keys parameter was added in one of the 5.2.x releases; it defaults to TRUE. This matches the behavior in PHP 5.1.6, which lacks this parameter.
To Top