按列对二维数组进行分组,并从分组子数组中删除分组列

问题描述 投票:0回答:2

鉴于我的数组

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
php arrays multidimensional-array grouping
2个回答
2
投票

也许有一个更简单的方法,但这应该适合你:

$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


2
投票

这样的东西应该有效:

$restructured = array();

foreach( $myarray as $value ){
    $key = $value['fielda'];
    unset($value['fielda']);
    $restructured[$key][] = $value;
}
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.