我保存爲.txt
名稱和作業的列表。 例如:一部分,另一個變量
John Doe Designer\n
Another Name AnotherJob.
我必須分開名稱和它的工作。我用explode("\n")
來分隔線條。 這是事情:我有一個數組中的所有作業名稱,我如何從字符串中提取名稱到另一個變量?所以輸出將是:
$name = "John Doe";
$job = "Designer";
我保存爲.txt
名稱和作業的列表。 例如:一部分,另一個變量
John Doe Designer\n
Another Name AnotherJob.
我必須分開名稱和它的工作。我用explode("\n")
來分隔線條。 這是事情:我有一個數組中的所有作業名稱,我如何從字符串中提取名稱到另一個變量?所以輸出將是:
$name = "John Doe";
$job = "Designer";
這不是完美的評論狀態,但爲您的文本,這將工作。 如果你有一些用一個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);
行已經分開,我只想從字符串中提取作業,就像使用str_replace(「作業名稱」,「」,$ string);但是,當找到一個匹配,我將知道哪些工作是更換 –
那麼,你不需要第2行,如果文本已經在後,你得到的人一個數組,等於名字數組的AUTO_INCREMENT重點線路,姓氏和有工作,只要一切遵循 名姓工作的具體規則,將工作,你也可以使用'「工作」 => $ peronData [2]' –
爲什麼'的作爲$鍵=> $ part'代替只是'作爲零件'? – Tadeck
如果你有一個數組,你可以做一些事情的所有作業名稱像這樣:
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'));
根據文本文件中給定的一行,函數將測試它是否以特定作業結束;如果是這樣,名稱就是它前面的部分。
在這個字符串列表中,名稱和作業值是用空格分隔的嗎?你怎麼知道它是一個名字包含一個,兩個,甚至沒有空格的人?我認爲你需要重新思考你如何存儲這些數據,查看'csv'格式來獲得一個簡單的例子。 – thatidiotguy
這是很難打破的,直到除非你的工作是一個字only..if幸運的是,它的工作是一個字長那麼在哪裏爆炸字符串,並使用'端()'爲job..otherwise這是很難破解這個現有系統的螺母 – swapnesh
我只能使用str_replace(作業數組,「」,$ string);但我只想知道哪個工作被替換了 –