我有一个名称和作业列表保存为.txt
。
例如:
John Doe Designer\n
Another Name AnotherJob.
我必须将名称和工作分开。我使用explode("\n")
来分隔线条。
事情就是这样:我将所有作业名称都放在一个数组中,如何将字符串中的名称提取到另一个变量?所以输出将是:
$name = "John Doe";
$job = "Designer";
答案 0 :(得分:0)
这不是完美的,因为评论说明但是对于你的文本,这将有效。 如果你有一个1/3或更多部分的名称它会搞砸但是对于你的例子,这将有所作为
$text = "John Doe Designer\n Another Name AnotherJob";
$parts = explode("\n", $text);
$persons = array();
foreach($parts as $key => $part){
$personData = explode(" ", $part);
$job = str_replace($personData[0]." ".$personData[1], "", $part);
$persons[] = array(
"fname" => $personData[0],
"lname" => $personData[1],
"job" => $job
);
}
print_r($persons);
答案 1 :(得分:0)
如果您拥有数组中的所有作业名称,则可以执行以下操作:
function getName($line, array $jobs)
{
foreach ($jobs as $job) {
if (substr_compare($line, $job, -strlen($job)) == 0) {
return rtrim(substr($line, 0, -strlen($job)));
}
}
return false;
}
$line = 'John Doe Designer';
$name = getName($line, array('Designer'));
根据文本文件中的给定行,该函数将测试它是否以特定作业结束;如果是的话,名称就是它前面的部分。