如何根据文本格式将文本输入到php数组中

如何根据文本格式将文本输入到php数组中,php,arrays,text,Php,Arrays,Text,我有一个由php打开并读取的文本文档,如下所示 ABC: 123 DEF: 456 GHI: 789 所以基本上它是一段以冒号结尾的文本,然后是另一段文本。要分隔行,请使用换行符(即“\n”) 是否可以将其放入由冒号和换行符分隔的数组中?因此,当我打印值时,它应该如下所示: “ABC:123,DEF:456,GHI:789”您需要做的第一件事是将这些队列分开 $lines = explode("\n", $doctext); 接下来,逐个处理这些行,拆分出适当的值 $output = a

我有一个由php打开并读取的文本文档,如下所示

ABC: 123

DEF: 456

GHI: 789
所以基本上它是一段以冒号结尾的文本,然后是另一段文本。要分隔行,请使用换行符(即“\n”)

是否可以将其放入由冒号和换行符分隔的数组中?因此,当我打印值时,它应该如下所示:


“ABC:123,DEF:456,GHI:789”

您需要做的第一件事是将这些队列分开

$lines = explode("\n", $doctext);
接下来,逐个处理这些行,拆分出适当的值

$output = array();
foreach ($lines as $line) {
    $line_parts = explode(': ', $line, 2); // Limit 2, in case data contains a colon
    $output[$line_parts[0]] = $line_parts[1];
}

然后,您可以在
$output
中找到您的数组。请注意,您还应该为这些行添加一些验证,以确保它们包含您期望的数据。此外,如果行可选地在冒号和值之间包含空格,或包含可变数量的空格,则根据需要在冒号上拆分并在值上使用。

这些是冒号,而不是分号。@octern你说得对,对此表示抱歉。这是漫长的一天。这正是我所需要的,非常感谢。非常快,对于
$line\u parts=explode(“:”,$line,2)2到底做什么?我在评论中提到了它,并且在
explode()
的文档中引用了它。基本上,它将返回的值数量限制为2。假设您在第一个冒号后面有数据,其中也有冒号,例如
ABC:Some:text
。如果没有2,您将丢失
:text
,因为它将位于索引2处的数组中。有了2,它将包含在元素1中。如果您的数据格式正确,您不一定需要它,但我会将其包括在内,以防万一。非常感谢,因为我有一些行包含第二个冒号。