Php 在多维数组中合并行

Php 在多维数组中合并行,php,arrays,Php,Arrays,我有一个简单的多维数组: $carousels = array( array(cols=>4, visible=>"visible-lg"), array(cols=>4, visible=>"visible-md"), array(cols=>3, visible=>"visible-sm"), array(cols=>3, visible=>"visible-xs") ); 如果'cols'相同,

我有一个简单的多维数组:

$carousels = array(
    array(cols=>4, visible=>"visible-lg"), 
    array(cols=>4, visible=>"visible-md"), 
    array(cols=>3, visible=>"visible-sm"), 
    array(cols=>3, visible=>"visible-xs")
    );
如果'cols'相同,我应该如何组合任何行

我想以以下内容结束:

$carousels = array(
    array(cols=>4, visible=>"visible-lg visible-md"), 
    array(cols=>3, visible=>"visible-sm visible-xs")
    );
因此,“visible”键被合并,“cols”键保持不变。我想我需要在数组中循环并输出到另一个“合并”数组,但是有更好的方法吗

这就是我目前所拥有的

function searchForKey($key, $arr) {
   foreach ($arr as $k => $v) {
       if ($v['cols'] === $key) {
           return $k;
       }
   }
   return null;
}
function mergeRows( $arr ) {
    $result = array();
    foreach( $arr as $k => $v ) {
        $key = searchForKey($v['cols'], $result);
        if ($key !== null) {
            $result[$key]['visible'] .= " ".$v['visible'];
        } else {
            $result[] = $v;
        }
    }
    return $result;
}

我想你需要一个回路。循环数组,检查cols是否存在,如果存在,则连接可见字符串,如果不存在,则添加一个新条目。之后,您将获得所需的阵列


array\u merge在这里不起作用,因为它只会合并2个或多个数组。

这正是我的想法。我只是想知道是否存在某种方法来“挤压”数组php@Itay见对我问题的补充