主要實現從一個數據庫中獲取中文名稱並獲取所有可能拼音的的大寫字母組合。然後和名稱一起導入另外一個數據庫
"; } return $temp; } //排列組合函數,實現所有可能大寫字母組合,比如中國銀行大寫拼寫可能為“ZGYH”“ZGYX” error_reporting( E_ALL&~E_NOTICE ); function get_new_arr(){ $args = func_get_args();//取得所有傳入參數的數組 $arr = array(); foreach($args as $k=>$v){ if($args[$k+1]) { switch($k) { case 0: $arr[$k] = arr_pailie($v,$args[$k+1]); break; default: $arr[$k] = arr_pailie($arr[$k-1],$args[$k+1]); break; } } } $key = count($arr)-1; $res = implode('.',$arr[$key]); return $res; } function arr_pailie ($arr1, $arr2){ $arr = array(); $k = 0; foreach($arr1 as $k1=>$v1){ foreach($arr2 as $k2=>$v2){ $arr[$k] = $v1.",".$v2; $k++; } } return $arr; } //數據庫連接,取出名稱和標識 $dbname="DB1"; $servcon=mysql_connect(MySql數據庫地址、用戶名、賬號); if(!$servcon){ die("Fail to connect to DataBase! Error:".mysql_error());} mysql_select_db($dbname,$servcon); $select = mysql_query("select Symbol,Name from smallsnapshoot"); //數據庫連接,將股票轉換的結果直接輸入到數據庫stockdb的py_convert表中 $dbname1="DB2"; $servcon1=mysql_connect(MySql數據庫地址、用戶名、賬號); if(!$servcon1){ die("Fail to connect to DataBase! Error:".mysql_error());} mysql_select_db($dbname1,$servcon1); //循環取源數據庫每行名稱、標識 while($row = mysql_fetch_array($select)){ //將漢字逐個輸入進行查找並保存到$arr_list數組 //$str = "平單銀行"; $str = $row["Name"]; $len = mb_strlen($str,"utf-8"); $arr_list = array(); for($i=0;$i<$len;$i++){ $arr[] = mb_substr($str,$i,1,"utf-8"); $arr_list[$i] = get_firstchar($arr[$i]); } //echo $arr_list[3]; //循環取每個字符數組字母進行匹配保存到$arr_str中 //排列組合函數調用,先將字符串數組的每個元素轉換為對就數組,因為本環境名稱最多為三個字或四個字 $arr1 = array(); $arr2 = array(); $arr3 = array(); $arr1 = str_split($arr_list[0]); $arr2 = str_split($arr_list[1]); $arr3 = str_split($arr_list[2]); if(count($arr_list) == 4){ $arr4 = array(); $arr4 = str_split($arr_list[3]); $result= get_new_arr($arr1,$arr2,$arr3,$arr4); //echo count($arr_list); } else{ $result= get_new_arr($arr1,$arr2,$arr3); //echo count($arr_list); } //echo $result; //對組合數據轉化為數組並刪除重復數組 $arr_str = array(); $arr_str = explode('.',$result); //echo $arr_str[1]; for($i=0;$i
因為涉及的為漢字名稱,所以采用的編輯環境為UTF-8。其中排列組合函數是借鑒的別人的,自己也想了半天效果不好,關鍵是數據邏輯思維不清楚,可見數據思維的重要性。
自己也是邊學邊做,php函數的調用不是很熟練,以後要加強編程方面練習。有寫得不好的地方,歡迎各位大神指正,互相交流,共同進步!