我的代码中有以下内容:
$my_count = count($total_elements[$array_object]);
$my_count
现在包含了元素的数量$total_elements[$array_object]
.我想将这个数字转换成相应的自然数(零,一,二,......)
在这个特定情况下,我只有5个数字:
$numbers = array( 2 => 'two', 3 => 'three', 4 => 'four', 5 => 'five', 6 => 'six', );
如何检索给定数组中的元素数量,然后echo
从数组中检索相应的自然数(人类可读数字)?或者更好 - 有更好的方法吗?
(我已经找到了一些功能或类来做到这一点 - 但是现在对于我现在需要的简单情况来说这些太过臃肿了)
现在,我当然可以这样做switch()
:
switch ($my_count) { case 0: echo "zero"; break; case 1: echo "one"; break; case 2: echo "two"; break; // etc... }
但它看起来对我来说并不优雅.如果一个人拥有超过10个数字,那也是非常愚蠢的.
我确信有一种更优雅的方式来实现这一点,即使现在我只有5个数字,我希望在其他情况下有一些功能可以重复使用.
(我很抱歉,如果这是一个愚蠢的问题-但是-搜索这里SE或谷歌的关键字PHP
- words
和count()
我只找到相关的计数串话回答)
梨有一个数字的包装.看看这个梨号码_word
$numbers = new Number_Words(); echo $number->toWords(200);
它会对你有所帮助
编辑
你可以在php中使用NumberFormatter类.
$f = new NumberFormatter("en", NumberFormatter::SPELLOUT); echo $f->format(200);
输出"二百"
如果您只需要检索5个数字,那么目前的方法很好.创建一个关联数组,其中包含数字作为键,相应的单词作为值:
$numberArray = array( 0 => 'zero', 1 => 'one', 2 => 'two', 3 => 'three', 4 => 'four', 5 => 'five', 6 => 'six', // ... );
现在,要检索对应的单词$my_count
:
$my_count = 2; echo $numberArray[$my_count]; // => two
您可以选择isset()
在尝试之前检查索引是否已定义echo
.这种方法适用于最多10个数字.但是,这显然不适用于更大的数字,因为它需要更复杂的规则.要创建一个在10或20行代码中执行此操作的函数并不容易.我建议您使用现有的解决方案,而不是尝试从头创建一个.看看Number_Words
PEAR课程.