2011-05-12 5 views
0

Скажем, у меня есть текстовая строка: {a|b|c|d} {a|b|c|d} {a|b|c|d} {a|b|c|d}.Перетасовка текста PHP и все возможные варианты

и простая функция PHP перетасовать текст:

function fb_filter_shuffle($string) 
{ 
    if(empty($string)) 
    { 
     return NULL; 
    } 

    return preg_replace_callback('/\{.*?\}/i', function($m) 
    { 
     $options = explode('|', mb_substr($m[0], 1, -1)); 

     shuffle($options); 

     return current($options); 
    }, $string); 
} 

Мне нужно, чтобы получить все возможные варианты выхода. Но как? единственный вариант, который я придумал до сих пор, заключался в том, чтобы запустить код nnn раз и выбрать уникальные параметры. Какие-нибудь более эффективные предложения?

ответ

1

30 секунд с помощью Google и посмотрите, что я придумал;)

http://docstore.mik.ua/orelly/webprog/pcook/ch04_25.htm

+0

Ссылку вы даете не является хорошим решением ... Действительно с A, B, C Результат вы получите является: B BA C CA CB CBA это отсутствует AB, AC, ABC, BCA, CBA не так ли? – zzarbi

Смежные вопросы