цикл с двумя столбцами в текстовом файле - PullRequest
0 голосов
/ 14 февраля 2011

это образец текстового файла с именем data.txt

john engineer
mathew IT consultant
elan Vice president
emili administrator
joicee nurse

$lines = file('data.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

    foreach ($lines as $names => $designation) { 

    //I am not sure above one is right?? then what??
    }

Я хочу, чтобы он загружался в две переменные

$names = john;
$designation = Engineer;

и проходил через него...

Ответы [ 4 ]

3 голосов
/ 14 февраля 2011

Строки в $lines не являются картой 'name' => 'обозначения' по умолчанию; Вы должны вручную разорвать линии.

Для этого вы можете использовать explode. Вам нужно будет добавить 2 в качестве необязательного параметра limit, чтобы убедиться, что строки разбиты только на первый пробел:

$lines = file('data.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

foreach ($lines as $line) {
  list($name, $designation) = explode(' ', $line, 2);
}

Без ограничения строки типа "elan Vice president" будут разбиты на array("elan", "Vice", "president") вместо array("elan", "Vice president").

2 голосов
/ 14 февраля 2011

Если ваш формат всегда использует пробел в качестве разделителя между $name, $designation, это может работать

foreach ($lines as $line_number => $line) 
{
  $space = strpos($s, ' ');
  $name  = substr($s, 0, $space);
  $designation = substr($s, $space+1);
}
0 голосов
/ 14 февраля 2011

Tty следующий код.Его работа ::

$lines = file('new.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
foreach ($lines as $line) {
list($name[], $job[]) = explode(' ', $line,2);
}
foreach($name as $n=>$value)
 echo "Name= ".$name[$n]." Job=".$job[$n]."<br>";
0 голосов
/ 14 февраля 2011

Если «имена» и «обозначения» разделены табуляцией, вы можете использовать что-то вроде этого:

foreach ($lines as $line) { 
  list($name, $designation) = explode("\t", $line);
  ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...