Loadtime og foreach
HejJeg 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'");
}
}
?>
