एक सिंगल सेट से विशिष्ट आकार के सभी संयोजन उत्पन्न करने के लिए, कोड निम्नानुसार है:
उदाहरण
function sampling($chars, $size, $combinations = array()) {
# पहली पुनरावृत्ति के मामले में, संयोजनों का पहला सेट कैरेक्टर्स के सेट के समान होता है
if (empty($combinations)) {
$combinations = $chars;
}
# आकार 1 इंगित करता है कि हम समाप्त हो गए हैं
if ($size == 1) {
return $combinations;
}
# नए मानों को डालने के लिए सरणी आरंभ करें
$new_combinations = array();
# मौजूदा संयोजनों और कैरेक्टर सेट के माध्यम से लूप करके स्ट्रिंग्स बनाएं
foreach ($combinations as $combination) {
foreach ($chars as $char) {
$new_combinations[] = $combination . $char;
}
}
# अगली पुनरावृत्ति के लिए उसी फ़ंक्शन को फिर से कॉल करें
return sampling($chars, $size - 1, $new_combinations);
}
$chars = array('a', 'b', 'c');
$output = sampling($chars, 2);
var_dump($output);
आउटपुट
यह निम्न आउटपुट देगा:
array(9) {
[0]=> string(2) "aa"
[1]=> string(2) "ab"
[2]=> string(2) "ac"
[3]=> string(2) "ba"
[4]=> string(2) "bb"
[5]=> string(2) "bc"
[6]=> string(2) "ca"
[7]=> string(2) "cb"
[8]=> string(2) "cc"
}
पहली पुनरावृत्ति समान कैरेक्टर सेट को प्रदर्शित करने का संकेत देती है। यदि आकार 1 है, तो संयोजन प्रदर्शित होता है। 'new_combinations' के रूप में एक सरणी आरंभ की जाती है और इसे 'forloop' का उपयोग करके लूप किया जाता है और उस स्ट्रिंग में प्रत्येक कैरेक्टर को हर दूसरे कैरेक्टर के साथ जोड़ा जाता है। 'sampling' फ़ंक्शन को पैरामीटर्स (स्ट्रिंग, स्ट्रिंग का आकार और सरणी) के साथ कॉल किया जाता है।