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见对我问题的补充