In het kader van nutteloze bezigheden ging ik maar eens de database van opentaal inlezen (160k woorden) en daarvan de woordwaarde bepalen (scrabble).
Het punt is, dat bepalen duurt lang, heel lang.
Ik heb al een beetje gekeken hoe efficiënt ik kon krijgen maar het moet nog efficiënter kunnen.
<?php
$letterwaarde = array(
'A' => 1,
'b' => 3); //voor alle letters in het alfabet
$t = microtime(true);
while($line = $q->fetch()){
$array = str_split(strtolower($line['woord']));
$int = 0;
foreach($array as $v){
if(array_key_exists($v,$letterwaarde)){ //kunnen ook rare tekens in zitten
$int += $letterwaarde[$v];
}
}
//update doen in database
}
echo microtime(true) - $t;
?>
Aantal dingen die ik al geprobeerd heb:
-while ipv de foreach (met sizeOf() voor de while)
-ipv de if(array_key_exists()) een @ voor de $letterwaarde[$v]
-letterverschuivingen in de array
Suggesties? :)