Задать вопрос
@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;
}
  • Вопрос задан
  • 74 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
mizutsune
@mizutsune
I will live forever in the flame of your eyes.
Можно обойтись и без цикла, если нужно просто объединить элементы массива в одну строку. Для решения подобных задач лучше подходит функция 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
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽