2011-02-28 96 views
1

我有一个这样的数组,其中x坐标和y坐标形成一个单独的条目。从数组中生成2个数组

$polygon = array("10 0", "20 5", "15 15", "22 15"); 

现在我怎样才能打破这种阵列分成2个不同的阵列,使得所有的x坐标会落入一个阵列和所有的y-坐标将落入另一个数组,像这样:

$x = array(10, 20, 15, 22); 
$y = array(0, 5, 15, 15); 

回答

5
$x = $y = array(); 
$polygon = array("10 0", "20 5", "15 15", "22 15"); 
foreach ($polygon as $coor) { 
    list($x[], $y[]) = explode(' ', $coor); 
} 

这将这样的伎俩:)

并把它们合并回:

//assuming that $x and $y have the same number of items 
for ($i = 0; $i<count($x); $i++) { 
    $polygon[] = $x[$i] .' ' . $y[$i]; 
} 
+3

尼斯使用列表()那里,不知道这是有可能 – edorian 2011-02-28 09:40:07

+0

感谢您的回答,只是想知道,如何做它的反向?我的意思是,如果我有$ x和$ y数组,如何生成$ polygon数组? – 2011-02-28 09:41:10

+0

@dskanth看我的编辑:)。 – gnur 2011-02-28 09:49:54

1

试一下:

$x = array(); 
$y = array(); 
foreach($polygon as $entry){ 
$splitted = explode(" ", $entry); 
//append x and y 
$x[] = $splitted[0]; 
$y[] = $splitted[1]; 
} 
+0

也适用...谢谢 – 2011-02-28 09:54:53