String to Array不起作用

时间:2014-06-13 07:44:45

标签: php arrays string explode

我有一大串数字(~25' 000),如下所示:

$numbers = "612000 709178 334770 640133 782189 711197 343667 715231 82900 713737 780729 717491 629803 711003 317252 711074 713740 429159 351816 5719 338126 715246";

我想创建一个数组。我觉得这很简单。所以我做了:

$myarr = explode(" ", $numbers);

print_r($myarr);

结果:

Array ( [0] => 612000 709178 334770 640133 782189 711197 343667 715231 82900 713737 780729 717491 629803 711003 317252 711074 713740 429159 351816 5719 338126 715246 )

但我应该是:

Array ( [0] => 612000 [1] => 709178 [2] => 334770 [3] => 640133 [4] => 782189 [5] => 711197 [6] => 343667 [7] => 715231 [8] => 82900 [9] => 713737 [10] => 780729 [11] => 717491 [12] => 629803 [13] => 711003 [14] => 317252 [15] => 711074 [16] => 713740 [17] => 429159 [18] => 351816 [19] => 5719 [20] => 338126 [21] =>  715246 )

我做错了什么?我看到很多例子。 (例如http://www.php.net/manual/en/function.explode.php

2 个答案:

答案 0 :(得分:2)

那应该有用。正如评论中指出的那样,它们可能不是项目之间的空间。一种解决方案(虽然慢得多)是使用preg_split

$myArr= preg_split("/[\s]+/", $numbers);

这只是分裂在空白区域。如果你可以使用explode和正确的字符进行拆分会更好,但是如果你不知道期望什么样的空白区域,这应该可行。

答案 1 :(得分:0)

$numbers = "612000 709178 334770 640133 782189 711197 343667 715231 82900 713737 780729 717491 629803 711003 317252 711074 713740 429159 351816 5719 338126 715246";

$numbers = preg_replace('/\s+/', ' ',$numbers);

$myarr = explode(" ", $numbers);

print_r($myarr);

如果您可能包含两个以上的空格,则此代码可以使用