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()ながら、この使用法をに変更することを望んでいます。どうすればよいですか?

4

2 に答える 2

3

str_spilt を使用する場合、区切り文字は使用できません。str_split は、文字列を文字ごとに分割し、各配列インデックスに格納します。また、str_split() を使用して、配列インデックスに格納する文字列の制限を指定できます。split() 関数のみを使用すると、explode() と同じ出力が得られます。

分解する代わりに、次の行を使用します。

$transArry = split(" ",$transData);
于 2010-03-09T05:18:21.197 に答える
2

2 つの destroy() と str_split() の違いは、explode は分割する文字を使用し、str_split は文字数を必要とすることです。そのため、レコード データ $transData のフィールドがまったく同じ長さでない限り、追加のコードが必要になります。すべてのフィールド/レコードが同じ長さの場合は、関数にドロップできます。したがって、レコードの各フィールドの長さが 10 文字の場合、次のことができます。

$transArry = str_split($transData, 10);
于 2010-03-09T05:18:31.570 に答える