Есть строка a = "а б в г"; как мне перебрать все возможные комбинации? то есть a = а а = аб а = бв а = вг а = в Все варианты переьрать, но чтобы буквы были по порядку то есть чтобы не бы такого а = аг а = вб и тд
Можно сделать строку без пробелов и функцией mb_substr() вырезать последовательно фрагменты из строки в двух циклах. В первом итерировать смещение от начала строки, а во втором - длину фрагмента.
Если я уберу пробелы как он поймет где отдельные слова? это пример. А если будет строка "катя вова вася" как мне его перебрать?
@drakonik999, так это из предыдущего Вашего вопроса? Тогда explode() и те же два цикла. Но необязательно для explode использовать пробел. При склеивании элементов можно использовать пробел в качестве клея. PHP: $a = 'вася෴петя෴катя'; $b = explode('෴', $a); $c = implode(' ', $b);
Пример взят с ресурса stackoverflow,особо не вникал ,но думаю твою задачу он решает: PHP: function depth_picker($arr, $temp_string, &$collect) { if ($temp_string != "") $collect []= $temp_string; for ($i=0; $i<count($arr);$i++) { $arrcopy = $arr; $elem = array_splice($arrcopy, $i, 1); // removes and returns the i'th element if (count($arrcopy) > 0) { depth_picker($arrcopy, $temp_string ." " . $elem[0], $collect); } else { $collect []= $temp_string. " " . $elem[0]; } } } $collect = array(); depth_picker(explode(' ','а б в г'), "", $collect); print_r($collect); Код (Text): Array ( [0] => а [1] => а б [2] => а б в [3] => а б в г [4] => а б г [5] => а б г в [6] => а в [7] => а в б [8] => а в б г [9] => а в г [10] => а в г б [11] => а г [12] => а г б [13] => а г б в [14] => а г в [15] => а г в б [16] => б [17] => б а [18] => б а в [19] => б а в г [20] => б а г [21] => б а г в [22] => б в [23] => б в а [24] => б в а г [25] => б в г [26] => б в г а [27] => б г [28] => б г а [29] => б г а в [30] => б г в [31] => б г в а [32] => в [33] => в а [34] => в а б [35] => в а б г [36] => в а г [37] => в а г б [38] => в б [39] => в б а [40] => в б а г [41] => в б г [42] => в б г а [43] => в г [44] => в г а [45] => в г а б [46] => в г б [47] => в г б а [48] => г [49] => г а [50] => г а б [51] => г а б в [52] => г а в [53] => г а в б [54] => г б [55] => г б а [56] => г б а в [57] => г б в [58] => г б в а [59] => г в [60] => г в а [61] => г в а б [62] => г в б [63] => г в б а )
PHP: <?php $symbols = ["а", "б", "в", "г"]; $vars =[]; while(count($vars) < 24) { $vars[implode(' ', $symbols)] = 1; shuffle($symbols); } $vars = array_keys($vars); sort($vars); print_r($vars); Код (Text): Array ( [0] => а б в г [1] => а б г в [2] => а в б г [3] => а в г б [4] => а г б в [5] => а г в б [6] => б а в г [7] => б а г в [8] => б в а г [9] => б в г а [10] => б г а в [11] => б г в а [12] => в а б г [13] => в а г б [14] => в б а г [15] => в б г а [16] => в г а б [17] => в г б а [18] => г а б в [19] => г а в б [20] => г б а в [21] => г б в а [22] => г в а б [23] => г в б а ) Из 4 букв вариантов не много