2016-05-30 9 views
-1

ich den folgenden Code finden Entropie:Wie PHP-Code zu optimieren?

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

Diese sehr unbequem. Wie kann ich Code optimieren? Vielen Dank!

+3

Versuchen Sie Ihr Glück bei http://codereview.stackexchange.com/ Ihr Code funktioniert, also ist es keine Frage für SO though. – manniL

Antwort

1

Die einfachste:

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