Php - 以单词形式返回 count()

标签 php count words human-readable

我的代码中有以下内容:

 $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相应的自然数(人类可读的数字)?或者更好 - 有更好的方法吗?

(我已经找到了一些 functionsclasses 来做到这一点 - 但现在对于我现在需要的简单案例来说,它们太臃肿了)

现在,我当然可以使用 switch() 来做到这一点:

switch ($my_count) {
    case 0:
        echo "zero";
        break;
    case 1:
        echo "one";
        break;
    case 2:
        echo "two";
        break;
      // etc...
}

但它对我来说看起来很不优雅。如果一个人有超过 10 个数字,那也很愚蠢。

我确信有一种更优雅的方法可以实现这一点,尽管现在我只有 5 个数字,但我希望有一些函数可以在其他情况下重复使用。

(如果这是一个愚蠢的问题,我很抱歉 - 但是 - 使用关键字 PHP 在 SE 或 Google 上搜索这里 - wordscount() 我只找到了与计算字符串中的单词相关的答案)

最佳答案

Pear 有一个数字词包。 检查一下 pear Number_word

$numbers = new Number_Words();
echo $number->toWords(200);

对你有帮助

编辑

您可以使用 NumberFormatter PHP 类。

$f = new NumberFormatter("en", NumberFormatter::SPELLOUT);  
echo $f->format(200);

它将输出“200”

关于Php - 以单词形式返回 count(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20309146/

相关文章:

php - Laravel 连接 2 个表,第一个表中的一个数据和第二个表中的多行

php - 不同表中两个字段的计数,分组不起作用

组上的 MySQL COUNT() 返回错误的行数

Haskell 单词实现

跨请求持久化的 PHP 全局变量

MS Access 与 MySQL 的 PHP 编程和自动同步

c# - ods_Selected 行计数

Excel:计算两个值的公共(public)参数数量

java - 如何使用Java查找数组中不同重复值的数量

Python - 回文函数 : Receiving error "list indices must be integers or slices, not str"