2016-05-30 13 views
-1

私は、次のコードのfindエントロピーを取得:PHPコードを最適化するには?

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); } 

この非常に不快。コードを最適化するにはどうすればよいですか?ありがとうございました!

+3

http://codereview.stackexchange.com/ であなたのコードが動作するので、それはしかしSOへの質問ではありませんあなたの運を試してみてください。 – manniL

答えて

1

最も簡単:

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