2012-08-12 248 views
0

我试图爆炸的结果,于2个不同的阵列PHP爆炸

One One_x 
Two Two_xx 
Three Three_xxx 
Four Four_xxxx 

分开我首先要爆炸断裂线(\ n)的..
然后爆炸的空间上来与所有一,二,三,四阵列中的
One_x,Two_xx,Three_xxx,Four_xxxx在不同的阵列

我试图引爆断线

$ex = explode("\n", $numbers); 

然后

foreach($ex as $number){ 
    $ex = explode(" ", $number); 
} 

但似乎有点混乱给我,

如何解决这个问题?

+0

你试图解决这个问题? – Napolux 2012-08-12 13:55:38

回答

3
$array1 = array(); 
$array2 = array(); 
foreach($ex as $number){ 
    $tmp = explode(" ", $number); 
    $array1[] = $tmp[0]; 
    $array2[] = $tmp[1]; 
} 

最简单的方式,我认为

编辑:小心你设置$ex在环...这不是个好主意。使用另一个变种

1

而是运行过程中出现的爆炸一次或两次,正则表达式可以一次分裂的输入,并断言它的结构:

preg_match_all('/ 
     ^  # line start 
     (\w+)  # One, Two, ... 
     \s+  # spaces 
     (\w+)  # Four_xxxxx 
     $   # line end 
     /smix', 
     $input, 
     $array 
); 
print_r($array); 

会给你:

[0] => Array 
    (
     [0] => One One_x 
     [1] => Two Two_xx 
     [2] => Three Three_xxx 
     [3] => Four Four_xxxx 
    ) 

[1] => Array 
    (
     [0] => One 
     [1] => Two 
     [2] => Three 
     [3] => Four 
    ) 

[2] => Array 
    (
     [0] => One_x 
     [1] => Two_xx 
     [2] => Three_xxx 
     [3] => Four_xxxx 
    ) 

也可以使用PREG_SET_ORDER甚至提取尾部_xxxx(?)数字。