Возможно ли в массиве ключи объединить, если в том или ином ключе идет содержание из одного или двух символов то объединился со следующим.
Массив такой
array ( 0 => 'В', 1 => 'городе', 2 => 'весна', );
А вот как сделать так понять никак не могу.
array ( 0 => 'В городе', 1=> 'весна', );
Например, как-нибудь так:
$a = array ( 0 => 'В', 1 => 'городе', 2 => 'весна', );
$tmp = null;
$b = array_reduce($a, function($res, $el) use (&$tmp) {
if ($tmp) {$el = "$tmp $el"; $tmp = null;}
if (strlen($el)<=2) $tmp = $el;
else $res[] = $el;
return $res;
}, array());
if ($tmp) {$b[] = $tmp;} // иначе можно потерять последний короткий элемент...
var_export($b); // array (0 => 'В городе', 1 => 'весна',)
Ещё вариант:
$input = ['И', 'в', 'городе', 'снова', 'весна', 'но'];
$output = [];
array_map(function($item)use(&$output){
static $temp;
if (mb_strlen($item) < 3) {
$temp .= $item . ' ';
} elseif (isset($temp)) {
$output[] = $temp . $item;
$temp = null;
} else {
$output[] = $item;
}
}, $input);
var_dump($output);
Результат:
array (size=3)
0 => string 'И в городе' (length=18)
1 => string 'снова' (length=10)
2 => string 'весна' (length=10)
Т.е., если последние элементы массива объединять не с чем, то они отбрасываются.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть сайт — gizel-bakirovainfo При переходе выдает ошибку — ERR_TOO_MANY_REDIRECTS Сайт функционирует на MODx Evolution
Я пользуюсь стандартным шаблоном protostar , у меня на сайте 20 материаловя включил пагинацию в админке и материалы выводятся по 13 на страницу
Добрый день, вопрос такой, есть форма отправки сообщения, все работает, единственное смена сообщений с "форма отправки" до "Cообщение успешно...