Замените использование explode () на str_split () - PullRequest
1 голос
/ 09 марта 2010
$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 ]

2 голосов
/ 09 марта 2010

Если вы используете str_spilt, вы не можете использовать разделитель. str_split разбивает строку символ за символом и сохраняется в каждом индексе массива. А также с помощью str_split () мы можем указать предел строки для хранения в индексе массива. Если вы используете только функцию split (), вы можете получить тот же вывод, что и функция explode ().

Вместо разнесения используйте следующую строку.

$transArry = split(" ",$transData);
1 голос
/ 09 марта 2010

Разница между двумя explode () и str_split () заключается в том, что для разнесения используется символ для разделения, а str_split требуется количество символов. Поэтому, если поля в записях данных $ transData не имеют одинаковую длину, для этого потребуется дополнительный код. Если все поля / записи имеют одинаковую длину, вы можете просто пропустить функцию. Поэтому, если каждое поле в записи имеет длину 10 символов, вы можете сделать:

$transArry = str_split($transData, 10);
...