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']; }
);