多行字符串到数组

时间:2015-12-29 03:00:24

标签: php arrays string

我有一个列表(如字符串,比如$ peoplelist),如下所示:

Name1
Name2
Name3

我要做的是将整个字符串分成单独的元素(其中每一行对应一个新元素//即元素1是“Name1”,元素2是“Name2”等)并放置它们到一个数组(基本上,使用行断开作为分隔符并将该字符串拆分为单独的元素,以便放入唯一索引下的数组中。)

这是我到目前为止所做的:

# Step 1 - Fetch the list
$peoplelist = file_get_contents('http://domain.tld/file-path/')
//The Contents of $peoplelist is stated at the top of this question.
//(The list of names in blue)

# Step 2 - Split the List, and put into an array
$arrayX = preg_split("/[\r\n]+/", $playerlist);
var_dump($arrayX);

现在,使用上面提到的代码,这就是我得到的(输出):

array(1) { [0]=> string(71) "Name1
Name2
Name3
" }

根据我的输出,(根据我的理解)整个字符串(步骤1中的列表)被放入一个索引下的数组中,这意味着第二步没有有效地做我想要的事情要做。

我的问题是,如何将列表拆分为单独的元素(原始列表中的每个单独行是唯一元素)并将这些元素放在数组中?

编辑: 感谢大家的帮助!感谢localheinz提供的解决方案:)

注意:如果有人将来读取此内容,请确保您的列表源文件包含原始数据 - 我的错误是使用扩展名为.php且包含html标记的文件 - 这个html脚本干扰了索引过程。

4 个答案:

答案 0 :(得分:7)

使用file()

$arrayX = file(
    'http://domain.tld/file-path/',
    FILE_IGNORE_NEW_LINES
);

供参考,见:

答案 1 :(得分:3)

试试吧。

<?php

$peoplelist = file_get_contents('text.txt');
$arrayX[0] = $peoplelist;
echo "<pre>";
var_dump($arrayX);

?>

=&GT; OUTPUT

  array(1) {
  [0]=>
  string(19) "Name1
   Name2
   Name3"
 }

答案 2 :(得分:2)

您可以在PHP中使用explode()。请参阅下面的代码,使用分隔符\n分割字符串:

explode("\n", $string);

答案 3 :(得分:2)

使用explode和分隔符PHP_EOL进行跨平台。

$str = "Name1
Name2
Name3";

var_dump(explode(PHP_EOL,$str));

将导致

array(3) {
  [0]=>
  string(5) "Name1"
  [1]=>
  string(5) "Name2"
  [2]=>
  string(5) "Name3"
}