Carsten: dokumentiertes umständliches Script

Beitrag lesen

Hallo Björn,

Die Textdateien sind _nicht_ dein Problem, sondern die ineffizient Umsetzung.
Wie gross sind die Datensätze eigentlich? Welchen Aufbau haben sie?

So auf Anhieb sehen tue ich nur:

»»  $entf[$b][0]=bcsqrt((bcpow($dx,2,10)+bcpow($dy,2,10)),10);

besser:
   $entf[$b][0]=Sqrt($dx*$dx + $dy*$dy);

Für mehr müsstest du Variablennamen vergeben die irgendeinen Sinn machen,
so ist das Script ungefähr so lesbar wie disassemblierter Compileroutput.

Tip:
$plz -> $haendler
$i -> $anzahlHaendler
$j -> $anzahlKoord  (zumindest da, wo das zutrifft)

Alle Schleifen, die über das gleiche Array zählen bekommen die gleiche
Zählervariable. (z.b. $h für alle Schleifen übers Händler Feld.)

Wech mit den temp1 bis temp5, statt:

»»   $temp5=$koord[$z][0];
»»   if($temp5==$postleitzahl)

muss da  if($koord[$z][0]==$postleitzahl) stehen.

Was merken sich $merke1 und $merke2 ?

Offensichtlich kommen bestimmte Codeteile mehrfach vor. Sowas gehört dann in
eine Funktion.

Arrays fangen -so wie du sie benutzt- bei Null an und gehen bis
count($Feld)-1. Schleife mit Abbruchbedingung $z<=count($Feld) ist also falsch.
Und Schleifen über for($z=ArrayGroesse;$z>=0;$z--) greifen ebenso einmal hinters
Array.

Sortieren macht man nicht selber, sondern mit den eingabauten Sortierfunktionen.
(Und mit usort() kann man auch beliebige (mehrdimensionale) Arrays nach
beliebigen Kriterien sortieren (->Archiv))

Gruss,
Carsten