Генерация всех комбинаций из набора символов

Генерация всех комбинаций из набора символов

Небольшая PHP функция, которая сгенерирует массив всех возможных строк заданной длины из набора символов.

function generator_words($chars, $length, &$words, $prefix = '') {
	if (strlen($prefix) == $length) {
		$words[] = $prefix;
		return;
	}

	for ($i = 0; $i < strlen($chars); $i++) {
		generator_words($chars, $length, $words, $prefix . $chars{$i});
	}
	
	return;
}
PHP

Использование

Например, в результате нужен массив строк длиной четыре символа из всех цифр.

generator_words('0123456789', 4, $words);
var_dump($words);
PHP

Результат:

array(10000) {
	[0]=> string(4) "0000"
	[1]=> string(4) "0001"
	[2]=> string(4) "0002"
	[3]=> string(4) "0003"
	...
	[9996]=> string(4) "9996"
	[9997]=> string(4) "9997"
	[9998]=> string(4) "9998"
	[9999]=> string(4) "9999"
}

Или строки длиной в три символа из всех букв английского алфавита.

generator_words('abcdefghijklmnopqrstuvwxyz', 3, $words);
var_dump($words);
PHP

Результат:

array(17576) {
	[0]=> string(3) "aaa"
	[1]=> string(3) "aab"
	[2]=> string(3) "aac"
	[3]=> string(3) "aad"
	...
	[17572]=> string(3) "zzw"
	[17573]=> string(3) "zzx"
	[17574]=> string(3) "zzy"
	[17575]=> string(3) "zzz"
}
20.05.2020, обновлено 22.05.2020
1842
Предыдущая запись SVG спрайты
Следующая запись Вывод массива колонками

Комментарии

, чтобы добавить комментарий.

Другие публикации

Генерация случайных буквенно-цифровых кодов в PHP
Несколько примеров, как сгенерировать случайные последовательности численных и буквенных строк заданной длины и...
3658
+2
Поиск похожих статей на PHP + MySQL
Один из вариантов поиска похожих статей в базе данных основан на схождении слов в двух текстах.
2375
+2
Преобразование цветов HEX и RGB в PHP
Несколько примеров как перевести цвета из HEX в RGB и обратно с помощью PHP.
8305
+1
Как вывести PHP массив
Примеры использования PHP функций и циклов для вывода всех элементов массива в окно браузера.
13460
+1
Работа с массивами PHP – создание, наполнение, удаление
Основные примеры работы с массивами PHP. Создание, наполнение, извлечение удаление значений.
37698
+4
Поиск файлов в PHP
Для поиска файлов на сервере хорошо подходит функция glob(), которая возвращает список файлов по заданной маске, например...
8000
0