【问题标题】:how to make a function that sum the array values and make the first value Capital using php如何使用php制作一个对数组值求和并制作第一个值Capital的函数
【发布时间】:2022-10-19 03:40:53
【问题描述】:

我无法回答这个问题

 <?php

$chars = ["A", 1, 2, "h", "m", "E", "D"];

//Needed Output is: Ahmed

我试图做到这一点

    foreach ($chars as $char) {
      if (gettype($char) == "string") {
        echo strtolower($char);
      }
    }
The Output is:

ahmed

但我不知道如何使第一个字母大写,有没有任何函数可以用数组做到这一点?

【问题讨论】:

  • “有没有什么函数可以用数组做到这一点?”- 为什么使用数组? $char 不是数组。
  • 那么我需要处理字符串的函数来做到这一点吗?
  • 因为我试图用 ucfirst() 来实现它,但它没有成功,它给了我 AHMED,我想要 Ahmed。
  • 那么你需要将它应用到第一的只是字符,不是全部。

标签: php arrays


【解决方案1】:

简短的回答 - 有一个 ucfirst 函数,但它只适用于细绳不是数组

所以我们需要做一点准备。您可以使用implode 转换数组并将其与空分隔符粘合。

ucfirst只会将第一个字母转换为大写,因此我们需要确保其他字母为小写;我们可以使用strtolower 函数来实现。

最后 - 我会在你的代码中为那个 foreach 使用array_filter

function testChar($char) {
    return gettype($char) === "string";
}

$chars = ["A", 1, 2, "h", "m", "E", "D"];
$result = array_filter($chars, "testChar");
$stringResult = implode("", $result);
$toLowerstringResult = strtolower($stringResult);
$ucfirstResult = ucfirst($toLowerstringResult);
echo $ucfirstResult;

【讨论】:

    【解决方案2】:
    1. 过滤掉非字符串类型的元素。
    2. 将数组转换为字符串。
    3. 强制所有字母为小写,第一个字母必须为大写。

      代码:(Demo)

      echo mb_convert_case(
               implode(
                   array_filter(
                       $chars,
                       'is_string'
                   )
               ),
               MB_CASE_TITLE
           );
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-07
      • 2010-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-08
      相关资源
      最近更新 更多