У меня есть простой многомерный массив:Объединение строк в многомерном массиве
$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» остается, как и прежде. Я думаю, мне нужно перебрать массив и вывести его в другой «объединенный» массив, но есть ли лучший способ?
Это то, что я до сих пор
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;
}
Что вы попробовали? – Itay
@Itay см. Дополнение к моему вопросу – gpcola