使用str_split()替代explode()函数

4
$transData = fgets($fp);
while (!feof ($fp))
{  
    $transArry = explode(" ", $transData);
    $first = $transArry[0];
    $last = $transArry[1];
    $Sub = $transArry[2];
    $Grade= $transArry[3]; 
    echo "<table width='400' ><colgroup span='1' width='35%' /><colgroup span='2' width='20%' /> <tr><td> ".$first."  ".$last." </td><td>   ".$Sub." </td><td> ".$Grade." </td></tr></table>";
    $transData = fgets($fp);
}

我的老师要求我将这个使用explode()的方法改为使用str_split(),并保持相同的输出。我该如何做到这一点?

2个回答

3
如果您使用str_split函数,则不能使用分隔符。 str_split将字符串逐个字符拆分并存储到每个数组索引中。而且,使用str_split()函数我们可以指定要存储在数组索引中的字符串限制。如果您仅使用split()函数,则可以获得与explode()相同的输出。
不要使用explode,改用以下代码。
$transArry = split(" ",$transData);

4
注意:split自PHP 5.3起已被弃用;preg_splitexplode是推荐的替代方案(前者用于需要正则表达式的情况,后者用于普通字符串分割)。 - cHao

2

explode()和str_split()的区别在于,explode()使用字符进行分割,而str_split()需要指定字符数。因此,除非记录数据$transData中的字段长度完全相同,否则需要编写额外的代码。如果所有字段/记录的长度都相同,则可以直接使用该函数。因此,如果每个记录中的字段长度为10个字符,则可以执行以下操作:

$transArry = str_split($transData, 10);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接