@Vladimir-Hetman

Как конкатенировать элементы массива в цикле?

Хочется из всех элементов массива сделать один элемент.
То есть, чтобы было не "1", "2", "3", а "123"
Знаю, что можно написать так:
$arr = $arr[0] .$arr[1] . $arr[2];

Но я хочу сделать это в цикле.
Моя попытка:
$arr = ["1", "2","3"];
 
foreach($arr as $key => $items){
$arr = $items. $items;
}
  • Вопрос задан
  • 67 просмотров
Решения вопроса 1
mizutsune
@mizutsune
Frontend Developer
Можно обойтись и без цикла, если нужно просто объединить элементы массива в одну строку. Для решения подобных задач лучше подходит функция implode:

// implode
$arr = ["1", "2", "3"];
$result = implode("", $arr);
echo $result; // 123


Или функция join:

$arr = ["1", "2", "3"];
$result = join("", $arr);
echo $result; // 123


Однако если по каким-то причинам, функции implode/join не подходят, например в случае если нужно проделать какие-то дополнительные действия с элементами массива перед конкатенацией, тогда можно воспользоваться циклами - for, foreach, etc.

$arr = ["1", "2", "3"];
$result = "";

foreach ($arr as $key => $item) {
    $result .= $item;
}

echo $result; // 123


Альтернативным вариантом является использование функции array_reduce, правда для решения такой простой задачи - данная функция выглядит слегка избыточной.

$arr = ["1", "2", "3"];
$result = array_reduce($arr, fn ($acc, $item) => $acc .= $item);

echo $result; // 123
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы