使用 CakePHP 附带的 Inflector 类。
debug(Inflector::singularize('People')); // will show person
http://book.cakephp.org/2.0/en/core-utility-libraries/inflector.html#Inflector::singularize
静态变形器::singularize($plural)
输入: 苹果、橙子、人、男人
输出: 苹果、橙子、人、人
老实说,我不知道它在内部是如何工作的,但它在英语单词方面做得很好,你甚至可以配置它来处理特殊情况。
您可以通过使用 Inflector::rules() 定义规则来配置规则的例外:
Inflector::rules('plural', array('/^(inflect)or$/i' => '\1ables'));
Inflector::rules('plural', array(
'rules' => array('/^(inflect)ors$/i' => '\1ables'),
'uninflected' => array('dontinflectme'),
'irregular' => array('red' => 'redlings')
));
Inflector::rules('transliteration', array('/å/' => 'aa'));