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