public static function singularize($string)
{
// save some time in the case that singular and plural are the same
if (in_array(strtolower($string), self::$uncountable)) {
return $string;
}
// check for irregular plural forms
foreach (self::$irregular as $result => $pattern) {
$pattern = '/' . $pattern . '$/i';
if (preg_match($pattern, $string)) {
return preg_replace($pattern, $result, $string);
}
}
// check for matches using regular expressions
foreach (self::$singular as $pattern => $result) {
if (preg_match($pattern, $string)) {
return preg_replace($pattern, $result, $string);
}
}
return $string;
}