- implode: documentation ( source)
- random_int: documentation ( source)
- array_keys: documentation ( source)
<?php
function randomString(int $stringLength, array $parts, string $delimeter = ' ') : string {
$keys = array_keys($parts); // Получаем массив ключей массива. Они упорядочены и идут с нулевого индекса.
$count = count($keys);
if (0 === $count) {
return '';
}
$text = [];
for($i = 1; $i <= $stringLength; $i++) { // Больше нравится когда написано конкретно "с первого до последнего"
$text[] = $parts[$keys[random_int(0, $count - 1)]]; // Получаем значение по случайному ключу из массива ключей
}
return implode($delimeter, $text);
}
echo randomString(
10,
[
'a' => 'lorem',
14 => 'ipsum',
'dolor' => 'dolor',
5 => 'sit',
'amet' => 'amet'
]
);