PHP 字符串组合示例
//字符串组合函数 function StrCombinations($arr, $len=0,&$res, $str=""){ $arr_len = count($arr); if($len == 0){ $res[] = $str; }else{ for($i=0; $i<$arr_len; $i++){ $tmp = array_shift($arr); if (empty($str)){ StrCombinations($arr, $len-1, $res,$tmp); }else{ StrCombinations($arr, $len-1, $res,$str."|".$tmp); } array_push($arr, $tmp); } } }
调用:
//比如:要对字符串('1120','1166','1118')3个一组进行组合, //首先将字符创封装成数组; $arr = array('1120','1166','1118'); //调用函数 StrCombinations($arr, 3,$result); //输出组合结果 print_r($result); /* Array ( [0] => 1120|1166|1118 [1] => 1120|1118|1166 [2] => 1166|1118|1120 [3] => 1166|1120|1118 [4] => 1118|1120|1166 [5] => 1118|1166|1120 ) */
这里组合方法的核心是递归,效率很低。如有更好的解决方案,希望大家能分享!