added a comment - - edited
It's not very complicated :
In Doctrine_Cache_Driver::_deleteKey, you do array_search() with the array $keys as haystack:
$keys = $this->fetch($this->_cacheKeyIndexKey);
$key = array_search($key, $keys);
But $keys is a string, because Doctrine_Cache_Driver::fetch returns a string (or false) :
/**
- Fetch a cache record from this cache driver instance
*
- @param string $id cache id
- @param boolean $testCacheValidity if set to false, the cache validity won't be tested
- @return string cached datas (or false)
*/
public function fetch($id, $testCacheValidity = true)
You can't make an array_search on a string.
I can't be more clear 
edit : You may tell me that the PHPdoc is wrong : but the problem still appears when ::fetch returns false.
I don't quite understand. Can you explain more?