Как массив заполнить чередующимися цифрами в php

Ответы
Аватар пользователя Nikolai Gagarinov
Nikolai Gagarinov
09 декабря 2021

Создать массив с чередующимися цифрами можно следующим образом


<?php
$numbers = [1, 2, 3];

$repeatedNumbers = array_merge(...array_fill(0, 3, $numbers));

print_r($repeatedNumbers);
// Array
// (
//     [0] => 1
//     [1] => 2
//     [2] => 3
//     [3] => 1
//     [4] => 2
//     [5] => 3
//     [6] => 1
//     [7] => 2
//     [8] => 3
// )

Что происходит в этом коде?

  1. У нас есть переменная с нашими цифрами или числами.
  2. с помощью функции array_fill создаем новый массив. Передаем в него первый индекс, количество элементов и значение для повтора. Таким образом функция создаст двумерный массив, в котором массивы с числами из переменной
  3. Вызываем функцию array_merge. Эта функция принимает один и больше массивов и соединяет их один с другим. Но! У нас массив вложенный, поэтому здесь используем spread оператор. Т.е. все вложенные массивы передаются в функцию, словно это будут отдельные аргументы. Array_mergeих получает и соединяет между собой.
  4. Получаем плоский массив с числами, Которые повторяются