duanbai1974 2012-07-12 08:45
浏览 102
已采纳

PHP按索引分组数组

I have a multidimensional array:

Array
(
[type] => Array
(
    [0] => text
    [1] => portfolio
    [2] => slide
    [3] => text
)

[grid] => Array
(
    [0] => 3
    [1] => 5
    [2] => 3
    [3] => 4
)

[title] => Array
(
    [0] => title1
    [3] => title2
)

[content] => Array
(
    [0] => content1
    [3] => content2
)

[item] => Array
(
    [1] => 6
    [2] => 7
)

[pagination] => Array
(
    [1] => 8
)

[order] => Array
(
    [1] => desc
    [2] => asc
)

)

And want to group it by [type] key given in the array:

Array (

[0] => Array (
        [type] => text
        [grid] => 3
        [title] => title1
        [content] => content1
    )

[1] => Array (
        [type] => portfolio
        [grid] => 5
        [item] => 6
        [pagination] => 1
        [order] => desc
    )

[2] => Array (
        [type] => slide
        [grid] => 3
        [item] => 7
        [order] => asc
    )

[3] => Array (
        [type] => text
        [grid] => 4
        [title] => title2
        [content] => content2
    )

Is there a way or PHP function to do array grouping like that?

  • 写回答

3条回答 默认 最新

  • doqdcks3948 2012-07-12 08:53
    关注

    This snippet achieves that:

    $result = array();
    foreach ($array as $key => $data) {
        foreach ($data as $offset => $value) {
            if (isset($result[$offset])) {
                $result[$offset][$key] = $value;
            } else {
                $result[$offset] = array($key => $value);
            }
        }
    }
    

    Working DEMO

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?