这是一个名为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;
并循环播放......
答案 0 :(得分:3)
$lines
中的行不是'name'=>默认情况下'指定'地图;你必须手动分开线。
您可以使用explode
。您必须添加2
作为可选的“限制”参数,以确保线条仅在第一个空格处分解:
$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")
。
答案 1 :(得分:2)
如果您的格式始终使用空格作为$name
与$designation
之间的分隔符,则可能会有效
foreach ($lines as $line_number => $line)
{
$space = strpos($s, ' ');
$name = substr($s, 0, $space);
$designation = substr($s, $space+1);
}
答案 2 :(得分:0)
如果“名称”和“名称”与制表分开,您可以使用以下内容:
foreach ($lines as $line) {
list($name, $designation) = explode("\t", $line);
...
}
答案 3 :(得分:0)
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>";