赞助年度的PHP数组分组

赞助年度的PHP数组分组,php,arrays,multidimensional-array,associative-array,Php,Arrays,Multidimensional Array,Associative Array,我正在尝试生成一个分组数组 这是我的密码: function group_assoc($array, $key) { $return = array(); foreach($array as $v) { $return[$v[$key]][] = $v; } return $return; } 以下是电流输出: Array ( [2007] => Array ( [0] => Array ( [

我正在尝试生成一个分组数组

这是我的密码:

function group_assoc($array, $key) {
$return = array();
foreach($array as $v) {
    $return[$v[$key]][] = $v;
}
return $return;
}
以下是电流输出:

Array
(
[2007] => Array
    (
        [0] => Array
            (
                [sponsorID] => 4
                [showType] => 2
                [categoryID] => 3
                [sponYear] => 2007
                [sponName] => asdasd
                [sponFileName] => design-desktop-wallpaper-2114754569.jpg
            )

    )

[2013] => Array
    (
        [0] => Array
            (
                [sponsorID] => 2
                [showType] => 1
                [categoryID] => 6
                [sponYear] => 2013
                [sponName] => Test Sponsor
                [sponFileName] => Jellyfish.jpg
            )

        [1] => Array
            (
                [sponsorID] => 3
                [showType] => 2
                [categoryID] => 1
                [sponYear] => 2013
                [sponName] => asdads
                [sponFileName] => Jellyfish.jpg
            )

    )

)
我怎样才能做这样的事情:

Array
(
[0] => 
[sponYear] => '2013'
Array
    (
        [0] => Array
            (
                [sponsorID] => 4
                [showType] => 2
                [categoryID] => 3
                [sponYear] => 2007
                [sponName] => asdasd
                [sponFileName] => design-desktop-wallpaper-2114754569.jpg
            )

    )

[1] => 
[sponYear] => '2007'
Array
    (
        [0] => Array
            (
                [sponsorID] => 2
                [showType] => 1
                [categoryID] => 6
                [sponYear] => 2013
                [sponName] => Test Sponsor
                [sponFileName] => Jellyfish.jpg
            )

        [1] => Array
            (
                [sponsorID] => 3
                [showType] => 2
                [categoryID] => 1
                [sponYear] => 2013
                [sponName] => asdads
                [sponFileName] => Jellyfish.jpg
            )

    )

)

因此,当我运行初始循环进行显示时,我能够显示“赞助年”?

我猜您每年的阵列都是赞助商。因此,您的功能将是:

function group_assoc($array, $key) {
    $return = array(
        'sponYear' => $key,
        'sponsors' => array()
    );
    foreach($array as $v) {
        $return['sponsors'][] = $v;
    }
    return $return;
}

通过更改使用当前输出的foreach循环,可以按原样使用当前输出

foreach (group_assoc($input_array, $my_key) as $year => $sponsors) {
    foreach ($sponsors as $sponsor) {
        // Do stuff with $sponsor['sponName'] etc.
    }
}

您的预期输出格式不正确。你能给出你想要的更好的预期输出吗?对不起,你刚刚把它转换回了原来的arraymuch,没有想到这样做,但是非常感谢!