php重构数组


php restructing an array

给定我的阵列

array [0]
    fielda: cca
    fieldb: my value b
    fieldc: my value c
    fieldd: my value d
array [1]
    fielda: cca
    fieldb: my value b
    fieldc: my value c
    fieldd: my value d
array [2]
    fielda: cca
    fieldb: my value b
    fieldc: my value c
    fieldd: my value d
array [3]
    fielda: ccb
    fieldb: my value b
    fieldc: my value c
    fieldd: my value d
array [4]
    fielda: ccb
    fieldb: my value b
    fieldc: my value c
    fieldd: my value d

有没有一种简单的方法来重组它,使fielda像一样分组

array [0]
    fielda: cca
        array [0]
            fieldb: my value b
            fieldc: my value c
            fieldd: my value d
        array [1]           
            fieldb: my value b
            fieldc: my value c
            fieldd: my value d
        array [2]                   
            fieldb: my value b
            fieldc: my value c
            fieldd: my value d
        array [3]                   
array [1]
    fielda: ccb
        array [0]
            fieldb: my value b
            fieldc: my value c
            fieldd: my value d
        array [1]           
            fieldb: my value b
            fieldc: my value c
            fieldd: my value d

也许有一种更简单的方法,但这应该适用于您:

$new_array = array();
foreach ($array as $values) // $array is your original array
{
    $new_array[array_shift($values)][] = $values;
}
print_r($new_array);

演示:http://codepad.org/M26yBLL4

这样的东西应该可以工作:

$reconstructure=array();

foreach( $myarray as $value ){
    $key = $value['fielda'];
    unset($value['fielda'];
    $restructured[$key][] = $value;
}

Fyi:我正在用手机回复-请原谅任何打字错误/自动更正等…