Ran into a weird situation were using array_walk() will only partially remove matches from my method, not certain exactly what is going on. I am currently using PHP v5.6.4. The issue almost seems to be that it is only removing every secondary match.
The kerning function
private function strip(array $exceptions)
{
array_walk($this->hosts, function($v, $k) USE ($exceptions)
{
foreach ($exceptions AS $exception)
{
if (preg_match("/{$exception}/i", strtolower($k)))
{
unset($this->hosts[$k]); break;
}
}
});
print_r($this->hosts); die;
}