original_string: public function remove($key, $value, $type = null)
  	{
  		if (is_null($type)) $type = $this->type($key);
  
  		switch ($type)
  		{
  			case 'list':
  				$key    = str_replace(':queued', '', $key);
  				$random = Str::quickRandom(64);
  
  				$this->database->lset($key, $value, $random);
  
  				return $this->database->lrem($key, 1, $random);
  
  			case 'zset':
  				return $this->database->zrem($key, $value);
  
  			default:
  				throw new UnexpectedValueException("Unable to delete {$value} from {$key}. List type {$type} not supported.");
  		}
  	}
code: public function remove($key, $value, $type = null)
  	{
  		if (is_null($type)) $type = $this->type($key);
  
  		switch ($type)
  		{
  			case 'list':
  				$key    = str_replace(':queued', '', $key);
  				$random = Str::quickRandom(64);
  
  				$this->database->lset($key, $value, $random);
  
  				return $this->database->lrem($key, 1, $random);
  
  			case 'zset':
  				return $this->database->zrem($key, $value);
  
  			default:
  				throw new UnexpectedValueException("Unable to delete {$value} from {$key}. List type {$type} not supported.");
  		}
  	}
code_tokens: public function remove ( $ key , $ value , $ type = null ) { if ( is_null ( $ type ) ) $ type = $ this -> type ( $ key ) ; switch ( $ type ) { case 'list' : $ key = str_replace ( ':queued' , '' , $ key ) ; $ random = Str :: quickRandom ( 64 ) ; $ this -> database -> lset ( $ key , $ value , $ random ) ; return $ this -> database -> lrem ( $ key , 1 , $ random ) ; case 'zset' : return $ this -> database -> zrem ( $ key , $ value ) ; default : throw new UnexpectedValueException ( "Unable to delete {$value} from {$key}. List type {$type} not supported." ) ; } }
docstring: Remove an item with a given key, index or value.
  
  @param  string  $key
  @param  string  $value
  @param  string  $type
  @return bool
docstring_tokens: Remove an item with a given key index or value .