একক সেট থেকে নির্দিষ্ট আকারের সব কম্বিনেশন জেনারেট করতে, কোডটি নিম্নরূপ:
উদাহরণ
function sampling($chars, $size, $combinations = array()) { # প্রথম ইটারেশনের ক্ষেত্রে, কম্বিনেশনların প্রথম সেট ক্যারেক্টার সেটের মতো if (empty($combinations)) { $combinations = $chars; } # সাইজ ১ মানে আমরা শেষে পেয়েছি 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" }প্রথম ইটারেশন একই ক্যারেক্টার সেট প্রদর্শন ইঙ্গিত দেয়। যদি সাইজ ১ হয়, তবে কম্বিনেশন প্রদর্শিত হয়। 'new_combinations' নামে একটি অ্যারে ইনিশিয়ালাইজ করা হয়েছে এবং 'forloop' ব্যবহার করে এর মাধ্যমে লুপ করা হয়েছে এবং সেই স্ট্রিংয়ের প্রতিটি ক্যারেক্টার অন্য সব ক্যারেক্টার সাথে কনক্যাট করা হয়েছে। 'sampling' ফাংশনটি প্যারামিটারসহ (স্ট্রিং, স্ট্রিংয়ের সাইজ এবং অ্যারে) কল করা হয়েছে।