2010-03-31 47 views
0

我有以下的数组:PHP:分割的阵列到更深的阵列

Array(
    [0] => 0,0 
    [1] => 0,1 
    [2] => 0,2 
    [3] => 0,3 
    [4] => 1,0 
    [5] => 1,1 
    [6] => 1,2 
    [7] => 2,0 
    [8] => 2,1 
    [9] => 2,2 
    [10] => 2,3 
) 

我想将其分割成以下结构:

Array( 

[0] => Array (
     [0] => 0 
     [1] => 1 
     [2] => 2 
     [3] => 3 
    ) 
[1] => Array (
     [0] => 0 
     [1] => 1 
     [2] => 2 
     [3] => 3 
    ) 
[2] => Array (
     [0] => 0 
     [1] => 1 
     [2] => 2 
     [3] => 3 
    ) 
[3] => Array (
     [0] => 0 
     [1] => 1 
     [2] => 2 
     [3] => 3 
) 

即,在“X ,Y“值,X对应于新阵列中值”Y“的位置。我似乎无法理解逻辑,我第一次以这种方式使用'foreach'。

任何帮助将不胜感激指着我在正确的方向。

+3

你的第二个代码块已经没有关系了第一位。你能举一个输入输出的例子吗? – 2010-03-31 13:53:13

回答

6

在您的示例输入和输出数组不太相符,但我猜你正在寻找这样的:

$array = array(…as above…); 
$newArray = array(); 

foreach ($array as $value) { 
    list($x, $y) = explode(',', $value); 
    $newArray[$x][] = $y; 
} 
+0

这样做,我欠你一杯先生! – aboved 2010-03-31 13:59:14

+0

@上面...和“接受的答案”复选标记。 :) – deceze 2010-03-31 14:01:56

+0

通过将$值传入循环作为对实际数组元素的引用,可以使内存更有效率:foreach($ array as&$ value){// ...} – selfawaresoup 2010-03-31 14:04:09