iterator_to_array

(PHP 5 >= 5.1.0, PHP 7)

iterator_to_arrayイテレータを配列にコピーする

説明

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

イテレータの要素を配列にコピーします。

パラメータ

iterator

コピーしたいイテレータ。

use_keys

イテレータの要素のキーをインデックスとして使用するかどうか。

PHP 5.5 以降では、キーが array あるいは object のときに警告を発するようになりました。 キーが NULL の場合は空文字列に変換し、キーが float の場合は integer 型になるよう切り詰めます。 キーが resource の場合は警告を発し、リソース ID に変換します。 また、キーが boolean の場合は整数値に変換します。

注意:

このパラメータを省略したり TRUE を指定したりした場合は、 重複するキーは上書きされます。そのキーに対して最後にあらわれた値が array で返されることになります。 このパラメータを FALSE にすると、重複があってもすべての値を返します。

返り値

iterator の要素を含む配列を返します。

変更履歴

バージョン 説明
5.5.0 iterator_to_array()use_keys パラメータを有効にしたときの、 integerstring 以外の型に対するサポートを強化しました。
5.2.1 use_keys パラメータが追加されました。

例1 iterator_to_array() の例

<?php
$iterator 
= new ArrayIterator(array('recipe'=>'pancakes''egg''milk''flour'));
var_dump(iterator_to_array($iteratortrue));
var_dump(iterator_to_array($iteratorfalse));
?>

上の例の出力は以下となります。

array(4) {
  ["recipe"]=>
  string(8) "pancakes"
  [0]=>
  string(3) "egg"
  [1]=>
  string(4) "milk"
  [2]=>
  string(5) "flour"
}
array(4) {
  [0]=>
  string(8) "pancakes"
  [1]=>
  string(3) "egg"
  [2]=>
  string(4) "milk"
  [3]=>
  string(5) "flour"
}