You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP数组元素分类问题:区分整数、浮点数与字符串并分组输出

修正后的PHP代码实现

原代码未处理浮点数分类,且输出逻辑不符合分组展示要求,以下是修正后的完整实现:

修正代码

<?php
// 初始化三个分组数组
$integers = [];
$floats = [];
$strings = [];

// 读取输入内容
while (FALSE !== ($line = fgets(STDIN))) {
    $element = trim($line);
    // 跳过空行(避免输入空行干扰分类)
    if (empty($element)) continue;

    // 判断是否为纯整数字符串
    if (ctype_digit($element)) {
        $integers[] = $element;
    } 
    // 判断是否为浮点数:是数字且包含小数点
    elseif (is_numeric($element) && strpos($element, '.') !== false) {
        $floats[] = $element;
    } 
    // 剩余元素归为字符串组
    else {
        $strings[] = $element;
    }
}

// 按要求格式输出分组结果
echo "<p>Group 1 - integers:\n" . implode("\n", $integers) . "</p>\n";
echo "<p>Group 2 - floats:\n" . implode("\n", $floats) . "</p>\n";
echo "<p>Group 3 - strings:\n" . implode("\n", $strings) . "</p>\n";
?>

核心修正点

  • 分类逻辑优化:
    • 用ctype_digit精准识别纯整数字符串,避免将带小数点的数字误判为整数
    • 通过is_numeric结合小数点检测,准确筛选浮点数
    • 剩余元素统一归入字符串组
  • 输出逻辑调整:先完成所有元素的分类,再一次性按段落格式输出分组内容,匹配预期展示要求
  • 空行处理:添加空行跳过逻辑,排除输入中空行的干扰

针对给定输入,运行后会输出:

<p>Group 1 - integers:
18
10
13</p>
<p>Group 2 - floats:
4.5
1.5
45.1</p>
<p>Group 3 - strings:
Bow
Alaska
France</p>

内容的提问来源于stack exchange,提问作者Martin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 09:02:38