Php 如何在多维数组中对相同的值进行分组?

Php 如何在多维数组中对相同的值进行分组?,php,multidimensional-array,Php,Multidimensional Array,如何在多维数组中对相同的值进行分组 我想要这个 array( array('a' => 1, 'b' => 'hello'), array('a' => 1, 'b' => 'world'), array('a' => 2, 'b' => 'you') ) 成为 array( array( array('a' => 1, 'b' => 'hello'), array('a' => 1, 'b' =>

如何在多维数组中对相同的值进行分组

我想要这个

array(
  array('a' => 1, 'b' => 'hello'), 
  array('a' => 1, 'b' => 'world'), 
  array('a' => 2, 'b' => 'you')
)
成为

array(
  array(
    array('a' => 1, 'b' => 'hello'), 
    array('a' => 1, 'b' => 'world')
  ), 
  array('a' => 2, 'b' => 'you')
)
然后


如果您的所有组都可以简化为一个字符串值(在本例中,它们可以,但如果您的内部数组类似于
array('a'=>ArbitraryObject)
它们不可能),则可以更有效地实现这一点。

类似这样的内容:?我不太懂。我们如何在js中做到这一点??
function array_gather(array $orig, $equality) {
    $result = array();
    foreach ($orig as $elem) {
        foreach ($result as &$relem) {
            if ($equality($elem, reset($relem))) {
                $relem[] = $elem;
                continue 2;
             }
        }
        $result[] = array($elem);
    }
    return $result;
}
array_gather($arr,
    function ($a, $b) { return $a['a'] == $b['a']; }
);