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
相关产品推荐
相关产品推荐

