@m4f1

Как доработать генератор возможных значений?

Как правильно доработать код генератора, чтобы он выводил значения по алфавиту и нумеровал каждую строку по порядку от 1 и до конца цикла?

Сам цикл:
$text_lenght = 3;
$charset = 'qwertyuiopasdfghjklzxcvbnm';
$charset_length = strlen($charset);

function create_word($width, $position, $base_string)
{

    global $text_lenght, $charset, $charset_length;
	
    for ($i = 0; $i < $charset_length; ++$i) {
        if ($position  < $width - 1) {
            create_word($width, $position + 1, $base_string . $charset[$i]);
        }
    if (strlen($base_string.$charset[$i]) <= $text_lenght) {
      echo $base_string.$charset[$i].'</br>';
    }		
    }

}

create_word($text_lenght, 0, '');
  • Вопрос задан
  • 58 просмотров
Решения вопроса 1
@IS-Builder
~ PHP-8 & REGEXP - This is a really powerful kit ~
m4f1 например
так
$text_lenght = 3;
$charset = 'qwertyuiopasdfghjklzxcvbnm';

$results = [];
create_words($text_lenght);
sort($results);

foreach ($results as $i => $result) {
    echo ++$i . '. ' . $result . '<br>';
}


function create_words(string $width, int $position = 0, string $base_string = ''): void
{
    global $text_lenght, $charset, $results;

    for ($i = 0, $j = strlen($charset); $i < $j; ++$i) {
        if ($position  < $width - 1) {
            create_words($width, $position + 1, $base_string . $charset[$i]);
        }
        if (strlen($base_string . $charset[$i]) <= $text_lenght) {
            $results[] = $base_string . $charset[$i];
        }
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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