如何对PHP数组使用strlen函数并计算字符串长度总和?
计算PHP字符串数组的所有元素长度之和
方法1:组合array_map与array_sum(最简洁)
这是最直接的实现方式,先用array_map遍历数组,对每个元素调用strlen计算长度,再用array_sum求和:
$array = ['One', 'Two', 'Three']; $totalLength = array_sum(array_map('strlen', $array)); echo $totalLength; // 输出 11
执行逻辑:array_map('strlen', $array)会生成新数组[3, 3, 5],array_sum直接对这个数组求和得到最终结果。
方法2:手动循环(灵活可控)
如果需要在计算过程中加入额外判断(比如过滤非字符串元素、空字符串),手动循环是更好的选择:
$array = ['One', 'Two', 'Three']; $totalLength = 0; foreach ($array as $str) { $totalLength += strlen($str); } echo $totalLength; // 输出 11
扩展示例(过滤非字符串元素):
$array = ['One', '', 123, 'Three']; $totalLength = 0; foreach ($array as $item) { if (is_string($item)) { $totalLength += strlen($item); } } echo $totalLength; // 输出 8
方法3:使用array_reduce(函数式写法)
通过array_reduce迭代数组,逐步累加长度总和:
$array = ['One', 'Two', 'Three']; $totalLength = array_reduce($array, function ($carry, $str) { return $carry + strlen($str); }, 0); echo $totalLength; // 输出 11
这里初始值0作为累加的起点,每次迭代将当前字符串长度加到累加值$carry中,最终返回总和。
内容的提问来源于stack exchange,提问作者Adi
相关产品推荐
相关产品推荐

