tundramani
@tundramani

Как получить случайную комбинацию букв на php?

для создания уникального имени папки на основе даты с точностью 1мс использую такой код:

do
{
	$suffix = 1000*(round(microtime(true) - time(), 3)); 
	$d = date('YmdHis').$suffix;
} 
while (file_exists($d));

mkdir($d);


подскажите как получить уникальное имя из массива букв
есть такие допустимые буквы:
$m_1 = array("d", "b", "g", "v", "z", "j", "r", "l", "m", "n", "h", "c", "t", "p", "k", "f", "s");
$m_2 = array("a", "o", "e", "u", "i");


мне нужно получить имя в формате: "dadada" - то есть поочередно согласные и гласные
надо получить случайную комбинацию и проверить существование такой папки
  • Вопрос задан
  • 99 просмотров
Решения вопроса 2
nazares
@nazares
Software Engineer
<?php

$m_1 = array("d", "b", "g", "v", "z", "j", "r", "l", "m", "n", "h", "c", "t", "p", "k", "f", "s");
$m_2 = array("a", "o", "e", "u", "i");


    $key1 = array_rand($m_1, 1);
    $key2 = array_rand($m_2, 1);

for ($i = 0; $i < 3; $i++) {
    echo $m_1[$key1] . $m_2[$key2];
}

вывод
dududu
rururu
jajaja
и тд

Ну или
<?php

$m_1 = array("d", "b", "g", "v", "z", "j", "r", "l", "m", "n", "h", "c", "t", "p", "k", "f", "s");
$m_2 = array("a", "o", "e", "u", "i");


    $key1 = array_rand($m_1, 3);
    $key2 = array_rand($m_2, 3);

 for ($i = 0; $i < 3; $i++) {
     $phrase .= $m_1[$key1[$i]] . $m_2[$key2[$i]];
 }

 echo $phrase;

Выхлоп
banuti
ganusi
vahefu
и тд
Ответ написан
@Frayl
$string = "abcdefhgjktyu"; 
$count = 5; 

$rand = "";
for ($i = 0; $i < $count; $i++) {
    $rand .= $string[mt_rand(0, strlen($string) - 1)];
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@kot999
Backend software engineer
в подобных случаях всегда хватало md5(microtime()) и в зависимости от надобности обрезал строку до нужной длины.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 11:08
5000 руб./за проект
19 апр. 2024, в 10:59
150000 руб./за проект
19 апр. 2024, в 10:02
6000 руб./за проект