字符串到数组获胜';不起作用


String to Array won't work

我有一个很大的数字字符串(~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)

这应该有效。正如评论中指出的那样,这可能不是项目之间的空隙。一种解决方案(尽管速度慢得多(是使用preg_split

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

这只是在空白处分裂。如果你可以使用爆炸和正确的字符进行拆分,那会更好,但如果你不知道应该使用什么样的空白,这应该会奏效。

$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);

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