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

 Jason子宣_805 发布于 2023-02-13 16:29

我的代码中有以下内容:

 $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- wordscount()我只找到相关的计数串话回答)

2 个回答
  • 梨有一个数字的包装.看看这个梨号码_word

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

    它会对你有所帮助

    编辑

    你可以在php中使用NumberFormatter类.

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

    输出"二百"

    2023-02-13 16:32 回答
  • 如果您只需要检索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_WordsPEAR课程.

    2023-02-13 16:32 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有