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

PHP如何在循环中读取存储在字符串内的多行数字内容

实现方案

你的核心需求是将多行数字字符串转换为和file()函数返回结构一致的行数组,原代码直接把字符串当数组操作自然无法正常运行。

问题原因

  • file()函数会自动将文本文件按行拆分,返回每一行作为元素的数组;你直接将字符串赋值给$lines后,它仍然是字符串类型,count()计算字符串只会返回1,无法得到正确的总行数
  • 字符串用[$i]下标访问只能拿到第i位的单个字符,无法读取完整的一行内容

修正方法

用explode()按换行符拆分字符串得到行数组即可,如果你需要和file('xxx.txt', FILE_IGNORE_NEW_LINES)一样去掉每行末尾的换行符,可以额外加array_map处理,修正后完整代码如下:

<?php
$numbers = "1
2
4
5
...";
// 按系统默认换行符拆分字符串为行数组
$lines = explode(PHP_EOL, $numbers);
// 可选:去除每行首尾的空白字符(包含换行符、多余空格等)
$lines = array_map('trim', $lines);
// 可选:过滤掉空行
$lines = array_filter($lines);

for($i = 119; $i >= 0; $i--)
{   
    if($i==119)
    {
        $no_of_lines = round(count($lines)/14); 
    }           
    // 判断下标是否存在,避免数组越界报错
    $line = isset($lines[$i]) ? $lines[$i] : '';
    echo "$line<br>";

    if( $i % 14 === 0 )
    {       
        echo "$no_of_lines<br>";
        $no_of_lines--;
    }
}
?>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 07:24:02