我有一个很大的数字字符串(~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);
如果您可能包含两个以上的空格,则此代码适用于