如何优化PHP代码?

时间:2016-05-30 08:21:11

标签: php optimization

我得到以下代码找到熵:

if(preg_match("/а/i",$stroka)) { $vers[0] = $ver[0]*log($ver[0], 2);  }
if(preg_match("/б/i",$stroka)) { $vers[1] = $ver[1]*log($ver[1], 2); }
if(preg_match("/в/i",$stroka)) { $vers[2] = $ver[2]*log($ver[2], 2); }
if(preg_match("/г/i",$stroka)) { $vers[3] = $ver[3]*log($ver[3], 2); }
if(preg_match("/д/i",$stroka)) { $vers[4] = $ver[4]*log($ver[4], 2); }
if(preg_match("/е/i",$stroka)) { $vers[5] = $ver[5]*log($ver[5], 2); }
if(preg_match("/ё/i",$stroka)) { $vers[6] = $ver[6]*log($ver[6], 2); }
if(preg_match("/ж/i",$stroka)) { $vers[7] = $ver[7]*log($ver[7], 2); }
if(preg_match("/з/i",$stroka)) { $vers[8] = $ver[8]*log($ver[8], 2); }
if(preg_match("/и/i",$stroka)) { $vers[9] = $ver[9]*log($ver[9], 2); }
if(preg_match("/й/i",$stroka)) { $vers[10] = $ver[10]*log($ver[10], 2); }
if(preg_match("/к/i",$stroka)) { $vers[11] = $ver[11]*log($ver[11], 2); }
if(preg_match("/л/i",$stroka)) { $vers[12] = $ver[12]*log($ver[12], 2); }
if(preg_match("/м/i",$stroka)) { $vers[13] = $ver[13]*log($ver[13], 2); }
这非常不舒服。我该如何优化代码?谢谢!

1 个答案:

答案 0 :(得分:1)

最简单:

<?php
$chars = [
    'а',
    'б',
    'в',
    'г',
    'д',
    'е',
    'ё',
    'ж',
    'з',
    'и',
    'й',
    'к',
    'л',
    'м',
];
foreach($chars as $key => $char) {
    if (preg_match("/{$char}/i", $stroka)) {
        $vers[$key] = $ver[$key] * log($ver[$key], 2);
    }
}