我有一个简单的多维数组:
$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")
);
因此'可见'键被合并,'cols'键保持不变。我想我需要遍历数组并输出到另一个'merged'数组但是有更好的方法吗?
这是我到目前为止所拥有的
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;
}
答案 0 :(得分:0)
我认为你需要一个循环。循环数组,检查是否存在“cols”,如果存在,则连接“visible”字符串,如果不存在,则添加新条目。之后,您将获得所需的阵列。
array_merge在这里不起作用,因为它只会合并2个或更多数组。