私は単純な多次元配列を持っています:
$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;
}