如何按特定键值对 PHP 数组进行分组


how can i group php array by certain key value

>我得到一个看起来像这样的数组

Array
(
    [0] => Array
        (
            [CAT] => CAT
            [2] => 1
        )
    [1] => Array
        (
            [DOG] => DOG
            [3] => 1
        )
    [2] => Array
        (
            [CAT] => CAT
            [4] => 1
        )
)

但我想要的是这样的安慰

Array
(
    [0] => Array
        (
            [CAT] => CAT
            [2] => 1
            [4] => 1
        )
    [1] => Array
        (
            [DOG] => DOG
            [3] => 1
        )
)

我以一种保存密钥和所有内容的方式创建了它。让我知道它是否适合你:)

<?php
    $start = [
        ["cat" => "cat", "2" => 1],
        ["dog" => "dog", "3" => 1],
        ["cat" => "cat", "4" => 1]
    ];
    $end = [];
    foreach($start as $key => $array) {
        if(!isset($end[current($array)])) {
            $name = current($array);
            $end[$name][key($array)] = $name;
            next($array);
            $end[$name][key($array)] = current($array);
        } else {
            $name = current($array);
            next($array);
            $end[$name][key($array)] = current($array);
        }
    }
    $end = array_values($end);
    print_r($end);