it_proger29
@it_proger29
Битрикс

Как перемешать один масив внутри другого?

Здравствуйте, есть несколько массивов.
Первый массив:
[3,4,5,6,7,8]
Второй массив:
[10,11,12]

Как второй массив перемешать внутри первого? Чтобы у первого порядок не изменился, но между ними рандомно разместились цифры из второго массива?
  • Вопрос задан
  • 57 просмотров
Решения вопроса 1
@StockholmSyndrome
$arr1 = [3,4,5,6,7,8];
$arr2 = [10,11,12];

function array_shuffle($a, $b) {
    $count = count($b);
    $indexes = array_rand($a, $count);
    $result = []; 
    for ($i = 0, $l = count($a); $i < $l; ++$i) {
        for ($j = 0; $j < $count; ++$j) {
            if ($indexes[$j] === $i) {
                $result[] = $b[$j]; 
                break;
            }
        }
        $result[] = $a[$i];
    }
    return $result;
}

print_r(array_shuffle($arr1, $arr2));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы