Avatar billede druen Nybegynder
17. juni 2007 - 00:54

Loadtime og foreach

Hej

Jeg har to arrays med hhv. statistik og en artikeldatabase på formen :
  csv[key][overskrift]=værdi
  artikeldb[key][artikelnummer]=overskrift

Mit mål er at knytte disse to sammen ved tilsvarende (men ikke helt ens pga. fejl i datamaterialet) overskrifter, så jeg får:

  slut[key][artikelnummer]=værdi (som sættes ind i mysql)

Min funktion er som følger, men kan ikke kører hele vejen igennem, da min udbyder kører PHP i safe-mode (max 45 sek), og hvert array har over tusind værdier. Er der nogen, der har nogen ideer til hvordan dette kan gøres på en hurtigere måde? Kan man bruge noget hurtigere end foreach?

<?
foreach ($csv as $outer_key => $single_array) {
                   
    foreach ($single_array as $inner_key => $value) {
               
        $ensartetenhednu = 0;
               
        // Finder den med størst ensartethed
        foreach ($artikeldb as $ydre_key => $enkelt_array) {
            foreach ($enkelt_array as $indre_key => $vaerdi ) {
                $ensartetenhed = similar_text($inner_key, $vaerdi);
       
                if($ensartetenhed > $ensartetenhednu){
                $o = $inner_key;
                $artikelid = $indre_key;
                $ensartetenhednu = $ensartetenhed;}           
            }
        }
        // Har fundet den mest ensartede
       
    // Tjekker nu for tidligere indsætninger og redifinere variable
    $uniqviews = $statid[$artikelid] + $value;
    $statid[$artikelid] = $uniqviews;       
       
    $overstat = "$stato[$artikelid]/$o";
    $stato[$artikelid] = $o;
       
    $sim = "$statsim[$artikelid]/$ensartetenhednu";
    $statsim[$artikelid] = $sim;

    // Sætter ind i mysql
    mysql_query("UPDATE `artikeldbstat` SET
    `overstat` = '$overstat',
    `uniqviews` = '$uniqviews',
    `sim` = '$ensartetenhednu'
                       
    WHERE `id` = '$artikelid'");           
 
  }
 
}
?>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester