tournasdim
11/4/2013 - 7:36 PM

A simple implementation of SPL's FilterIterator Class .

A simple implementation of SPL's FilterIterator Class .

<?php

	class CustomFilterIterator extends FilterIterator 
	{

		protected $filterKey ;
		protected $filterValue ; 
		public function __construct($iter, $key , $value ) 
		{
		  parent::__construct($iter);
		  $this->filterKey = $key;
		  $this->filterValue = $value;
		}

		public function accept() 
		{
		 $item = $this->current();
		 $key = key($this->current()) ; 
		if ( $key === $this->filterKey AND $item[$key] === $this->filterValue)  
			return true ; 
		}
	}

$myArray = array( 
 
    ['name' => 'dimitrios' , 'address' => 'SomeAddress' , 'country' => 'Greece' , 'phone'=> 4568765] ,
    ['name' => 'Jhon' ,'address' => 'Alimos' , 'country' => 'France' , 'phone' => 6577474] , 
    ['name' => 'Justin' , 'address' => 'Sint Johnson ' , 'country' => 'UK' , 'phone' => '8875775']
);

$customFilter = new CustomFilterIterator(new ArrayIterator($myArray) , 'name' ,'dimitrios');

	foreach ($customFilter as $v) {
	 var_dump($v) ; 
	}