首頁 後端開發 php教程 优化PHP in_array()函数,效率提高50倍

优化PHP in_array()函数,效率提高50倍

Jun 20, 2016 pm 01:02 PM
php優化

/原始程序
function pinyin($str) { //判断是否是 单拼  双拼 三拼 四拼
    
    $pin_arr = array("a", "ai", "an", "ang", "ao", "ba", "bai", "ban", "bang", "bao", "bei", "ben", "beng", "bi", "bian", "biao", "bie", "bin", "bing", "bo", "bu", "ca", "cai", "can", "cang", "cao", "ce", "ceng", "cha", "chai", "chan", "chang", "cao", "che", "chen", "cheng", "chi", "chong", "chou", "chu", "chuai", "chuan", "chuang", "chui", "chun", "chuo", "ci", "cong", "cou", "cu", "chuan", "cui", "cun", "cuo", "da", "dai", "dan", "dang", "dao", "de", "deng", "di", "dian", "diao", "die", "ding", "dui", "dong", "dou", "du", "duan", "dui", "dun", "duo", "e", "en", "er", "fa", "fan", "fang", "fei", "fen", "feng", "fo", "fou", "fu", "ga", "gai", "gan", "gang", "gao", "ge", "gei", "gen", "geng", "gong", "gou", "gu", "gua", "guai", "guan", "guang", "gui", "gun", "guo", "ha", "hai", "han", "hang", "hao", "he", "hei", "hen", "heng", "hong", "hou", "hu", "hua", "huai", "huan", "huang", "hui", "hun", "huo", "ji", "jia", "jian", "jiang", "jiao", "jie", "jin", "jing", "jiong", "jiu", "ju", "juan", "jue", "jun", "ka", "kai", "kan", "kang", "kao", "ke", "kei", "ken", "keng", "kong", "kou", "ku", "kua", "kuai", "kuan", "kuang", "kui", "kun", "kuo", "la", "lai", "lan", "lang", "lao", "le", "lei", "leng", "li", "lia", "lian", "liang", "liao", "lie", "lin", "ling", "liu", "long", "lou", "lu", "lv", "luan", "lue", "lun", "luo", "ma", "mai", "man", "mang", "mao", "me", "mei", "men", "meng", "mi", "mian", "miao", "mie", "min", "ming", "miu", "mo", "mou", "mu", "na", "nai", "nan", "nang", "nao", "ne", "nei", "nen", "neng", "ni", "nian", "niang", "niao", "nie", "nin", "ning", "niu", "nong", "nu", "nv", "nuan", "nue", "nuo", "ou", "pa", "pai", "pan", "pang", "pao", "pei", "pen", "peng", "pi", "pian", "piao", "pie", "pin", "ping", "po", "pou", "pu", "qi", "qia", "qian", "qiang", "qiao", "qie", "qin", "qing", "qiong", "qiu", "qu", "quan", "que", "qun", "ran", "rang", "rao", "re", "ren", "reng", "ri", "rong", "rou", "ru", "ruan", "rui", "run", "ruo", "sa", "sai", "san", "sang", "sao", "se", "sen", "seng", "sha", "shai", "shan", "shang", "shao", "she", "shen", "sheng", "shi", "shou", "shu", "shua", "shuai", "shuan", "shuang", "shui", "shun", "shuo", "si", "song", "sou", "su", "suan", "sui", "sun", "suo", "ta", "tai", "tan", "tang", "tao", "te", "teng", "ti", "tian", "tiao", "tie", "ting", "tong", "tou", "tu", "tuan", "tui", "tun", "tuo", "wa", "wai", "wan", "wang", "wei", "wen", "weng", "wo", "wu", "xi", "xia", "xian", "xiang", "xiao", "xie", "xin", "xing", "xiong", "xiu", "xu", "xuan", "xue", "xun", "ya", "yan", "yong", "yao", "ye", "yi", "yin", "ying", "yo", "yong", "you", "yu", "yuan", "yue", "yun", "za", "zai", "zan", "zang", "zao", "ze", "zei", "zen", "zeng", "zha", "zhai", "zhan", "zhong", "zhao", "zhe", "zhen", "zheng", "zhi", "zhong", "zhou", "zhu", "zhua", "zhuai", "zhuan", "zhuang", "zhui", "zhun", "zhuo", "zi", "zong", "zou", "zu", "zuan", "zui", "zun", "zuo");
   
    if (in_array($str, $pin_arr)) {
        return 1;
    }
    
    for ($i = 1; $i < strlen($str); $i++) {
 
        if ($i < 7) {
            if (pinyin(substr($str, 0, $i)) && $n = pinyin(substr($str, $i))) {
 
                return $n + 1;
            }
        } else {
            return 0;
        }
    }
    return 0;
}
登入後複製

上面$pin_arr是个大数组,大概400个元素,从上可以看出单拼域名、双拼域名、三拼域名概念:如果一个域名【这里$str是指域名的中间部分,如www.scutephp.com则是scutephp】全部由$pin_arr中n个元素组成,则是n拼域名。
看看优化后的程序代码:

/**
 * 优化后的判断n拼域名函数
 * 
 */
$pin_arr =array(&#39;a&#39;=>&#39;&#39;,&#39;ai&#39;=>&#39;&#39;,&#39;an&#39;=>&#39;&#39;,&#39;ang&#39;=>&#39;&#39;,&#39;ao&#39;=>&#39;&#39;,&#39;ba&#39;=>&#39;&#39;,&#39;bai&#39;=>&#39;&#39;,&#39;ban&#39;=>&#39;&#39;,&#39;bang&#39;=>&#39;&#39;,&#39;bao&#39;=>&#39;&#39;,&#39;bei&#39;=>&#39;&#39;,&#39;ben&#39;=>&#39;&#39;,&#39;beng&#39;=>&#39;&#39;,&#39;bi&#39;=>&#39;&#39;,&#39;bian&#39;=>&#39;&#39;,&#39;biao&#39;=>&#39;&#39;,&#39;bie&#39;=>&#39;&#39;,&#39;bin&#39;=>&#39;&#39;,&#39;bing&#39;=>&#39;&#39;,&#39;bo&#39;=>&#39;&#39;,&#39;bu&#39;=>&#39;&#39;,&#39;ca&#39;=>&#39;&#39;,&#39;cai&#39;=>&#39;&#39;,&#39;can&#39;=>&#39;&#39;,&#39;cang&#39;=>&#39;&#39;,&#39;cao&#39;=>&#39;&#39;,&#39;ce&#39;=>&#39;&#39;,&#39;ceng&#39;=>&#39;&#39;,&#39;cha&#39;=>&#39;&#39;,&#39;chai&#39;=>&#39;&#39;,&#39;chan&#39;=>&#39;&#39;,&#39;chang&#39;=>&#39;&#39;,&#39;cao&#39;=>&#39;&#39;,&#39;che&#39;=>&#39;&#39;,&#39;chen&#39;=>&#39;&#39;,&#39;cheng&#39;=>&#39;&#39;,&#39;chi&#39;=>&#39;&#39;,&#39;chong&#39;=>&#39;&#39;,&#39;chou&#39;=>&#39;&#39;,&#39;chu&#39;=>&#39;&#39;,&#39;chuai&#39;=>&#39;&#39;,&#39;chuan&#39;=>&#39;&#39;,&#39;chuang&#39;=>&#39;&#39;,&#39;chui&#39;=>&#39;&#39;,&#39;chun&#39;=>&#39;&#39;,&#39;chuo&#39;=>&#39;&#39;,&#39;ci&#39;=>&#39;&#39;,&#39;cong&#39;=>&#39;&#39;,&#39;cou&#39;=>&#39;&#39;,&#39;cu&#39;=>&#39;&#39;,&#39;chuan&#39;=>&#39;&#39;,&#39;cui&#39;=>&#39;&#39;,&#39;cun&#39;=>&#39;&#39;,&#39;cuo&#39;=>&#39;&#39;,&#39;da&#39;=>&#39;&#39;,&#39;dai&#39;=>&#39;&#39;,&#39;dan&#39;=>&#39;&#39;,&#39;dang&#39;=>&#39;&#39;,&#39;dao&#39;=>&#39;&#39;,&#39;de&#39;=>&#39;&#39;,&#39;deng&#39;=>&#39;&#39;,&#39;di&#39;=>&#39;&#39;,&#39;dian&#39;=>&#39;&#39;,&#39;diao&#39;=>&#39;&#39;,&#39;die&#39;=>&#39;&#39;,&#39;ding&#39;=>&#39;&#39;,&#39;dui&#39;=>&#39;&#39;,&#39;dong&#39;=>&#39;&#39;,&#39;dou&#39;=>&#39;&#39;,&#39;du&#39;=>&#39;&#39;,&#39;duan&#39;=>&#39;&#39;,&#39;dui&#39;=>&#39;&#39;,&#39;dun&#39;=>&#39;&#39;,&#39;duo&#39;=>&#39;&#39;,&#39;e&#39;=>&#39;&#39;,&#39;en&#39;=>&#39;&#39;,&#39;er&#39;=>&#39;&#39;,&#39;fa&#39;=>&#39;&#39;,&#39;fan&#39;=>&#39;&#39;,&#39;fang&#39;=>&#39;&#39;,&#39;fei&#39;=>&#39;&#39;,&#39;fen&#39;=>&#39;&#39;,&#39;feng&#39;=>&#39;&#39;,&#39;fo&#39;=>&#39;&#39;,&#39;fou&#39;=>&#39;&#39;,&#39;fu&#39;=>&#39;&#39;,&#39;ga&#39;=>&#39;&#39;,&#39;gai&#39;=>&#39;&#39;,&#39;gan&#39;=>&#39;&#39;,&#39;gang&#39;=>&#39;&#39;,&#39;gao&#39;=>&#39;&#39;,&#39;ge&#39;=>&#39;&#39;,&#39;gei&#39;=>&#39;&#39;,&#39;gen&#39;=>&#39;&#39;,&#39;geng&#39;=>&#39;&#39;,&#39;gong&#39;=>&#39;&#39;,&#39;gou&#39;=>&#39;&#39;,&#39;gu&#39;=>&#39;&#39;,&#39;gua&#39;=>&#39;&#39;,&#39;guai&#39;=>&#39;&#39;,&#39;guan&#39;=>&#39;&#39;,&#39;guang&#39;=>&#39;&#39;,&#39;gui&#39;=>&#39;&#39;,&#39;gun&#39;=>&#39;&#39;,&#39;guo&#39;=>&#39;&#39;,&#39;ha&#39;=>&#39;&#39;,&#39;hai&#39;=>&#39;&#39;,&#39;han&#39;=>&#39;&#39;,&#39;hang&#39;=>&#39;&#39;,&#39;hao&#39;=>&#39;&#39;,&#39;he&#39;=>&#39;&#39;,&#39;hei&#39;=>&#39;&#39;,&#39;hen&#39;=>&#39;&#39;,&#39;heng&#39;=>&#39;&#39;,&#39;hong&#39;=>&#39;&#39;,&#39;hou&#39;=>&#39;&#39;,&#39;hu&#39;=>&#39;&#39;,&#39;hua&#39;=>&#39;&#39;,&#39;huai&#39;=>&#39;&#39;,&#39;huan&#39;=>&#39;&#39;,&#39;huang&#39;=>&#39;&#39;,&#39;hui&#39;=>&#39;&#39;,&#39;hun&#39;=>&#39;&#39;,&#39;huo&#39;=>&#39;&#39;,&#39;ji&#39;=>&#39;&#39;,&#39;jia&#39;=>&#39;&#39;,&#39;jian&#39;=>&#39;&#39;,&#39;jiang&#39;=>&#39;&#39;,&#39;jiao&#39;=>&#39;&#39;,&#39;jie&#39;=>&#39;&#39;,&#39;jin&#39;=>&#39;&#39;,&#39;jing&#39;=>&#39;&#39;,&#39;jiong&#39;=>&#39;&#39;,&#39;jiu&#39;=>&#39;&#39;,&#39;ju&#39;=>&#39;&#39;,&#39;juan&#39;=>&#39;&#39;,&#39;jue&#39;=>&#39;&#39;,&#39;jun&#39;=>&#39;&#39;,&#39;ka&#39;=>&#39;&#39;,&#39;kai&#39;=>&#39;&#39;,&#39;kan&#39;=>&#39;&#39;,&#39;kang&#39;=>&#39;&#39;,&#39;kao&#39;=>&#39;&#39;,&#39;ke&#39;=>&#39;&#39;,&#39;kei&#39;=>&#39;&#39;,&#39;ken&#39;=>&#39;&#39;,&#39;keng&#39;=>&#39;&#39;,&#39;kong&#39;=>&#39;&#39;,&#39;kou&#39;=>&#39;&#39;,&#39;ku&#39;=>&#39;&#39;,&#39;kua&#39;=>&#39;&#39;,&#39;kuai&#39;=>&#39;&#39;,&#39;kuan&#39;=>&#39;&#39;,&#39;kuang&#39;=>&#39;&#39;,&#39;kui&#39;=>&#39;&#39;,&#39;kun&#39;=>&#39;&#39;,&#39;kuo&#39;=>&#39;&#39;,&#39;la&#39;=>&#39;&#39;,&#39;lai&#39;=>&#39;&#39;,&#39;lan&#39;=>&#39;&#39;,&#39;lang&#39;=>&#39;&#39;,&#39;lao&#39;=>&#39;&#39;,&#39;le&#39;=>&#39;&#39;,&#39;lei&#39;=>&#39;&#39;,&#39;leng&#39;=>&#39;&#39;,&#39;li&#39;=>&#39;&#39;,&#39;lia&#39;=>&#39;&#39;,&#39;lian&#39;=>&#39;&#39;,&#39;liang&#39;=>&#39;&#39;,&#39;liao&#39;=>&#39;&#39;,&#39;lie&#39;=>&#39;&#39;,&#39;lin&#39;=>&#39;&#39;,&#39;ling&#39;=>&#39;&#39;,&#39;liu&#39;=>&#39;&#39;,&#39;long&#39;=>&#39;&#39;,&#39;lou&#39;=>&#39;&#39;,&#39;lu&#39;=>&#39;&#39;,&#39;lv&#39;=>&#39;&#39;,&#39;luan&#39;=>&#39;&#39;,&#39;lue&#39;=>&#39;&#39;,&#39;lun&#39;=>&#39;&#39;,&#39;luo&#39;=>&#39;&#39;,&#39;ma&#39;=>&#39;&#39;,&#39;mai&#39;=>&#39;&#39;,&#39;man&#39;=>&#39;&#39;,&#39;mang&#39;=>&#39;&#39;,&#39;mao&#39;=>&#39;&#39;,&#39;me&#39;=>&#39;&#39;,&#39;mei&#39;=>&#39;&#39;,&#39;men&#39;=>&#39;&#39;,&#39;meng&#39;=>&#39;&#39;,&#39;mi&#39;=>&#39;&#39;,&#39;mian&#39;=>&#39;&#39;,&#39;miao&#39;=>&#39;&#39;,&#39;mie&#39;=>&#39;&#39;,&#39;min&#39;=>&#39;&#39;,&#39;ming&#39;=>&#39;&#39;,&#39;miu&#39;=>&#39;&#39;,&#39;mo&#39;=>&#39;&#39;,&#39;mou&#39;=>&#39;&#39;,&#39;mu&#39;=>&#39;&#39;,&#39;na&#39;=>&#39;&#39;,&#39;nai&#39;=>&#39;&#39;,&#39;nan&#39;=>&#39;&#39;,&#39;nang&#39;=>&#39;&#39;,&#39;nao&#39;=>&#39;&#39;,&#39;ne&#39;=>&#39;&#39;,&#39;nei&#39;=>&#39;&#39;,&#39;nen&#39;=>&#39;&#39;,&#39;neng&#39;=>&#39;&#39;,&#39;ni&#39;=>&#39;&#39;,&#39;nian&#39;=>&#39;&#39;,&#39;niang&#39;=>&#39;&#39;,&#39;niao&#39;=>&#39;&#39;,&#39;nie&#39;=>&#39;&#39;,&#39;nin&#39;=>&#39;&#39;,&#39;ning&#39;=>&#39;&#39;,&#39;niu&#39;=>&#39;&#39;,&#39;nong&#39;=>&#39;&#39;,&#39;nu&#39;=>&#39;&#39;,&#39;nv&#39;=>&#39;&#39;,&#39;nuan&#39;=>&#39;&#39;,&#39;nue&#39;=>&#39;&#39;,&#39;nuo&#39;=>&#39;&#39;,&#39;ou&#39;=>&#39;&#39;,&#39;pa&#39;=>&#39;&#39;,&#39;pai&#39;=>&#39;&#39;,&#39;pan&#39;=>&#39;&#39;,&#39;pang&#39;=>&#39;&#39;,&#39;pao&#39;=>&#39;&#39;,&#39;pei&#39;=>&#39;&#39;,&#39;pen&#39;=>&#39;&#39;,&#39;peng&#39;=>&#39;&#39;,&#39;pi&#39;=>&#39;&#39;,&#39;pian&#39;=>&#39;&#39;,&#39;piao&#39;=>&#39;&#39;,&#39;pie&#39;=>&#39;&#39;,&#39;pin&#39;=>&#39;&#39;,&#39;ping&#39;=>&#39;&#39;,&#39;po&#39;=>&#39;&#39;,&#39;pou&#39;=>&#39;&#39;,&#39;pu&#39;=>&#39;&#39;,&#39;qi&#39;=>&#39;&#39;,&#39;qia&#39;=>&#39;&#39;,&#39;qian&#39;=>&#39;&#39;,&#39;qiang&#39;=>&#39;&#39;,&#39;qiao&#39;=>&#39;&#39;,&#39;qie&#39;=>&#39;&#39;,&#39;qin&#39;=>&#39;&#39;,&#39;qing&#39;=>&#39;&#39;,&#39;qiong&#39;=>&#39;&#39;,&#39;qiu&#39;=>&#39;&#39;,&#39;qu&#39;=>&#39;&#39;,&#39;quan&#39;=>&#39;&#39;,&#39;que&#39;=>&#39;&#39;,&#39;qun&#39;=>&#39;&#39;,&#39;ran&#39;=>&#39;&#39;,&#39;rang&#39;=>&#39;&#39;,&#39;rao&#39;=>&#39;&#39;,&#39;re&#39;=>&#39;&#39;,&#39;ren&#39;=>&#39;&#39;,&#39;reng&#39;=>&#39;&#39;,&#39;ri&#39;=>&#39;&#39;,&#39;rong&#39;=>&#39;&#39;,&#39;rou&#39;=>&#39;&#39;,&#39;ru&#39;=>&#39;&#39;,&#39;ruan&#39;=>&#39;&#39;,&#39;rui&#39;=>&#39;&#39;,&#39;run&#39;=>&#39;&#39;,&#39;ruo&#39;=>&#39;&#39;,&#39;sa&#39;=>&#39;&#39;,&#39;sai&#39;=>&#39;&#39;,&#39;san&#39;=>&#39;&#39;,&#39;sang&#39;=>&#39;&#39;,&#39;sao&#39;=>&#39;&#39;,&#39;se&#39;=>&#39;&#39;,&#39;sen&#39;=>&#39;&#39;,&#39;seng&#39;=>&#39;&#39;,&#39;sha&#39;=>&#39;&#39;,&#39;shai&#39;=>&#39;&#39;,&#39;shan&#39;=>&#39;&#39;,&#39;shang&#39;=>&#39;&#39;,&#39;shao&#39;=>&#39;&#39;,&#39;she&#39;=>&#39;&#39;,&#39;shen&#39;=>&#39;&#39;,&#39;sheng&#39;=>&#39;&#39;,&#39;shi&#39;=>&#39;&#39;,&#39;shou&#39;=>&#39;&#39;,&#39;shu&#39;=>&#39;&#39;,&#39;shua&#39;=>&#39;&#39;,&#39;shuai&#39;=>&#39;&#39;,&#39;shuan&#39;=>&#39;&#39;,&#39;shuang&#39;=>&#39;&#39;,&#39;shui&#39;=>&#39;&#39;,&#39;shun&#39;=>&#39;&#39;,&#39;shuo&#39;=>&#39;&#39;,&#39;si&#39;=>&#39;&#39;,&#39;song&#39;=>&#39;&#39;,&#39;sou&#39;=>&#39;&#39;,&#39;su&#39;=>&#39;&#39;,&#39;suan&#39;=>&#39;&#39;,&#39;sui&#39;=>&#39;&#39;,&#39;sun&#39;=>&#39;&#39;,&#39;suo&#39;=>&#39;&#39;,&#39;ta&#39;=>&#39;&#39;,&#39;tai&#39;=>&#39;&#39;,&#39;tan&#39;=>&#39;&#39;,&#39;tang&#39;=>&#39;&#39;,&#39;tao&#39;=>&#39;&#39;,&#39;te&#39;=>&#39;&#39;,&#39;teng&#39;=>&#39;&#39;,&#39;ti&#39;=>&#39;&#39;,&#39;tian&#39;=>&#39;&#39;,&#39;tiao&#39;=>&#39;&#39;,&#39;tie&#39;=>&#39;&#39;,&#39;ting&#39;=>&#39;&#39;,&#39;tong&#39;=>&#39;&#39;,&#39;tou&#39;=>&#39;&#39;,&#39;tu&#39;=>&#39;&#39;,&#39;tuan&#39;=>&#39;&#39;,&#39;tui&#39;=>&#39;&#39;,&#39;tun&#39;=>&#39;&#39;,&#39;tuo&#39;=>&#39;&#39;,&#39;wa&#39;=>&#39;&#39;,&#39;wai&#39;=>&#39;&#39;,&#39;wan&#39;=>&#39;&#39;,&#39;wang&#39;=>&#39;&#39;,&#39;wei&#39;=>&#39;&#39;,&#39;wen&#39;=>&#39;&#39;,&#39;weng&#39;=>&#39;&#39;,&#39;wo&#39;=>&#39;&#39;,&#39;wu&#39;=>&#39;&#39;,&#39;xi&#39;=>&#39;&#39;,&#39;xia&#39;=>&#39;&#39;,&#39;xian&#39;=>&#39;&#39;,&#39;xiang&#39;=>&#39;&#39;,&#39;xiao&#39;=>&#39;&#39;,&#39;xie&#39;=>&#39;&#39;,&#39;xin&#39;=>&#39;&#39;,&#39;xing&#39;=>&#39;&#39;,&#39;xiong&#39;=>&#39;&#39;,&#39;xiu&#39;=>&#39;&#39;,&#39;xu&#39;=>&#39;&#39;,&#39;xuan&#39;=>&#39;&#39;,&#39;xue&#39;=>&#39;&#39;,&#39;xun&#39;=>&#39;&#39;,&#39;ya&#39;=>&#39;&#39;,&#39;yan&#39;=>&#39;&#39;,&#39;yong&#39;=>&#39;&#39;,&#39;yao&#39;=>&#39;&#39;,&#39;ye&#39;=>&#39;&#39;,&#39;yi&#39;=>&#39;&#39;,&#39;yin&#39;=>&#39;&#39;,&#39;ying&#39;=>&#39;&#39;,&#39;yo&#39;=>&#39;&#39;,&#39;yong&#39;=>&#39;&#39;,&#39;you&#39;=>&#39;&#39;,&#39;yu&#39;=>&#39;&#39;,&#39;yuan&#39;=>&#39;&#39;,&#39;yue&#39;=>&#39;&#39;,&#39;yun&#39;=>&#39;&#39;,&#39;za&#39;=>&#39;&#39;,&#39;zai&#39;=>&#39;&#39;,&#39;zan&#39;=>&#39;&#39;,&#39;zang&#39;=>&#39;&#39;,&#39;zao&#39;=>&#39;&#39;,&#39;ze&#39;=>&#39;&#39;,&#39;zei&#39;=>&#39;&#39;,&#39;zen&#39;=>&#39;&#39;,&#39;zeng&#39;=>&#39;&#39;,&#39;zha&#39;=>&#39;&#39;,&#39;zhai&#39;=>&#39;&#39;,&#39;zhan&#39;=>&#39;&#39;,&#39;zhong&#39;=>&#39;&#39;,&#39;zhao&#39;=>&#39;&#39;,&#39;zhe&#39;=>&#39;&#39;,&#39;zhen&#39;=>&#39;&#39;,&#39;zheng&#39;=>&#39;&#39;,&#39;zhi&#39;=>&#39;&#39;,&#39;zhong&#39;=>&#39;&#39;,&#39;zhou&#39;=>&#39;&#39;,&#39;zhu&#39;=>&#39;&#39;,&#39;zhua&#39;=>&#39;&#39;,&#39;zhuai&#39;=>&#39;&#39;,&#39;zhuan&#39;=>&#39;&#39;,&#39;zhuang&#39;=>&#39;&#39;,&#39;zhui&#39;=>&#39;&#39;,&#39;zhun&#39;=>&#39;&#39;,&#39;zhuo&#39;=>&#39;&#39;,&#39;zi&#39;=>&#39;&#39;,&#39;zong&#39;=>&#39;&#39;,&#39;zou&#39;=>&#39;&#39;,&#39;zu&#39;=>&#39;&#39;,&#39;zuan&#39;=>&#39;&#39;,&#39;zui&#39;=>&#39;&#39;,&#39;zun&#39;=>&#39;&#39;,&#39;zuo&#39;=>&#39;&#39;);
function changed_pinyin($str) { //判断是否是 单拼  双拼 三拼 四拼
 
    global $pin_arr;
 
    if(isset($pin_arr[$str])){
        return 1;
    }
    
    $length = strlen($str);
    for ($i = 1; $i < $length; $i++) {
 
        if ($i < 7) {
            if (changed_pinyin(substr($str, 0, $i)) && $n = changed_pinyin(substr($str, $i))) {
                return $n + 1;
            }
        } else {
            return 0;
        }
    }
    return 0;
}
 
function microtime_float()
{
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}
 
 
//随机生成字符串用于测试
$random_array = array();
for($i = 0; $i < 5000; $i++){
    $str = array_merge(range(0,9),range(&#39;a&#39;,&#39;z&#39;));
    shuffle($str);
    $random_array[] = implode(&#39;&#39;,array_slice($str,0,  array_rand(range(2, 15))));
}
 
$time_start = microtime_float();
 
foreach($random_array as $row){
    changed_pinyin($row);  //大于30s
    //pinyin($row);        //小于0.5s
}
 
$time_end = microtime_float();
$time = $time_end - $time_start;
 
echo "耗时: $time seconds\n";
登入後複製

很显然上面这个函数主要一直在执行in_array()函数,所以第一步就是优化in_array()函数:
这里我了解到PHP Array的KEY是进行HASH组织的,查询很快。而VALUE是由KEY组织存放,本身没有索引,每次查找都是遍历。
于是,我将in_array()那段改了下:

$pin_arr    =  array_flip($pin_arr);
if(array_key_exists($str,$pin_arr)){
	return 1; 
}
登入後複製


效率提高不明显,考虑到$pin_arr数组太大,于是我将其作为全局变量,提到外面,于是时间缩短了几十倍,对于判断数组元素是否存在,通过测试发现使用array_key_exists随着循环的次数增加,程序运行的时间增加量是成几何级数增加的,当一个数组元素个数超过1000时运行速度就非常慢了,isset()的效率要远高于array_key_exists()。于是效率又提高了几倍。
最后当然是把执行函数strlen($str)提到循环外,这不用多说了吧!
 


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1323
25
PHP教程
1272
29
C# 教程
1251
24
如何使用APCu快取技術優化PHP應用程式的效能? 如何使用APCu快取技術優化PHP應用程式的效能? Jun 20, 2023 pm 09:47 PM

目前,PHP已成為網路開發中最加盛行的程式語言之一,而PHP程式的效能最佳化也成為了最迫切的問題之一。在處理大規模的並發請求時,一秒鐘的延遲都可能對使用者體驗產生巨大的影響。如今,APCu(AlternativePHPCache)快取技術已成為最佳化PHP應用效能的重要的方法之一。本文將介紹如何使用APCu快取技術來最佳化PHP應用程式的效能。一、APC

如何使用Memcached快取技術優化PHP應用程式CPU的使用率? 如何使用Memcached快取技術優化PHP應用程式CPU的使用率? Jun 21, 2023 pm 05:07 PM

隨著互聯網的發展,PHP應用程式在網路應用領域中變得越來越常見。但是,PHP應用程式的高並發存取會導致伺服器的CPU使用率高,進而影響應用程式的效能。為了優化PHP應用程式的效能,Memcached快取技術成為了一個很好的選擇。本文將介紹如何使用Memcached快取技術最佳化PHP應用程式CPU的使用率。 Memcached快取技術簡介Memcached是一

如何透過PHP優化SuiteCRM的客戶端效能 如何透過PHP優化SuiteCRM的客戶端效能 Jul 20, 2023 am 10:00 AM

如何透過PHP優化SuiteCRM的用戶端效能概述:SuiteCRM是一個功能強大的開源客戶關係管理(CRM)系統,但在處理大量資料和並髮使用者時,可能會出現效能問題。本文將介紹一些透過PHP程式設計技巧來優化SuiteCRM客戶端效能的方法,並附上對應的程式碼範例。使用適當的資料查詢和索引資料庫查詢是CRM系統的核心操作之一。為了提高查詢效能,需要使用適當的資料查

如何最佳化PHP的資料庫連線與查詢效能? 如何最佳化PHP的資料庫連線與查詢效能? Jun 29, 2023 am 10:25 AM

如何最佳化PHP的資料庫連線與查詢效能?資料庫是Web開發中不可或缺的一部分,而PHP作為一種廣泛使用的伺服器端腳本語言,其與資料庫的連接和查詢效能對於整個系統的效能至關重要。本文將介紹一些優化PHP資料庫連接和查詢效能的技巧和建議。使用持久化連線:在PHP中,每次執行資料庫查詢時都會建立一次資料庫連線。而持久化連接可以在多次查詢中重複使用同一個資料庫連接,從而減

如何針對不同 PHP 版本最佳化函數效能? 如何針對不同 PHP 版本最佳化函數效能? Apr 25, 2024 pm 03:03 PM

針對不同PHP版本最佳化函數效能的方法包括:使用分析工具識別函數瓶頸;啟用opcode快取或使用外部快取系統;新增類型註解提高效能;根據PHP版本選擇合適的字串連線和排序演算法。

如何透過PHP優化SuiteCRM的使用者介面 如何透過PHP優化SuiteCRM的使用者介面 Jul 17, 2023 am 10:27 AM

如何透過PHP優化SuiteCRM的使用者介面SuiteCRM是一個受歡迎的開源CRM(客戶關係管理)軟體,它提供了強大的功能和靈活的可自訂性。然而,在使用SuiteCRM時,有時會發現使用者介面(UI)的效能不佳或不夠符合特定的需求。這時,我們可以透過使用PHP程式語言對SuiteCRM的使用者介面進行最佳化,以提高效能並滿足特定需求。本文將介紹一些優化SuiteC

如何利用PHP優化SuiteCRM的專案管理功能 如何利用PHP優化SuiteCRM的專案管理功能 Jul 17, 2023 am 11:34 AM

如何利用PHP優化SuiteCRM的專案管理功能SuiteCRM是一款功能強大的開源客戶關係管理(CRM)系統,它提供了廣泛的功能和可自訂性。在專案管理方面,SuiteCRM提供了一些基本功能,如任務分配、進度追蹤和檔案共用等。然而,有時我們需要根據特定的業務需求對專案管理功能進行最佳化。在本文中,我們將介紹如何利用PHP程式語言來擴充和最佳化SuiteCRM的

如何利用PHP優化織夢建站效果 如何利用PHP優化織夢建站效果 Mar 27, 2024 pm 01:51 PM

如何利用PHP優化織夢建站效果在當今網路崛起浪潮中,搭建一個高效、優質的網站愈發重要。織夢(DedeCMS)是一個功能強大的網站建立系統,但有時候它的預設功能可能無法完全滿足我們的需求。在這篇文章中,我們將探討如何利用PHP優化織夢建站效果,並提供一些具體的程式碼範例。 1.優化網站速度網站速度是使用者體驗和SEO排名的重要因素之一,透過優化PHP程式碼可以提高網站

See all articles