diff options
author | Ignace Nyamagana Butera <nyamsprod@gmail.com> | 2015-02-19 08:49:17 +0100 |
---|---|---|
committer | Ignace Nyamagana Butera <nyamsprod@gmail.com> | 2015-02-19 08:52:39 +0100 |
commit | 0a493cecf0216f4c797671601251e3c1a6452ffa (patch) | |
tree | a23aeb9c31d7e05ccffa30bd4e5dc46cd27a5139 /src/Modifier/MapIterator.php | |
parent | 959ede56075fec54891fad13744aeed6d42ad345 (diff) | |
download | csv-0a493cecf0216f4c797671601251e3c1a6452ffa.zip csv-0a493cecf0216f4c797671601251e3c1a6452ffa.tar.gz csv-0a493cecf0216f4c797671601251e3c1a6452ffa.tar.bz2 |
final package structure
Diffstat (limited to 'src/Modifier/MapIterator.php')
-rw-r--r-- | src/Modifier/MapIterator.php | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/Modifier/MapIterator.php b/src/Modifier/MapIterator.php new file mode 100644 index 0000000..7360f42 --- /dev/null +++ b/src/Modifier/MapIterator.php @@ -0,0 +1,57 @@ +<?php +/** +* This file is part of the League.csv library +* +* @license http://opensource.org/licenses/MIT +* @link https://github.com/thephpleague/csv/ +* @version 7.0.0 +* @package League.csv +* +* For the full copyright and license information, please view the LICENSE +* file that was distributed with this source code. +*/ +namespace League\Csv\Modifier; + +use IteratorIterator; +use Traversable; + +/** + * A simple MapIterator + * + * @package League.csv + * @since 3.3.0 + * @internal used internally to modify CSV content + * + */ +class MapIterator extends IteratorIterator +{ + /** + * The function to be apply on all InnerIterator element + * + * @var callable + */ + private $callable; + + /** + * The Constructor + * + * @param Traversable $iterator + * @param callable $callable + */ + public function __construct(Traversable $iterator, callable $callable) + { + parent::__construct($iterator); + $this->callable = $callable; + } + + /** + * Get the value of the current element + */ + public function current() + { + $iterator = $this->getInnerIterator(); + $callable = $this->callable; + + return $callable($iterator->current(), $iterator->key(), $iterator); + } +} |