Philip: Festellen, wie oft Einträge doppelt sind?

Hi @ all

ich habe folgenden PHP Code:

$toplist_temp = my_array_unique($url_temp);
 $z = count ($toplist_temp);

for ($i=0; $i < $z; $i++) {
  for ($a=0; $a < $C; $a++) {
   if ($toplist_temp[$i] = $url_temp[$a]) { $h[$i] = $h[$i] + 1; }
 }};

Damit möchte ich die Varible h (bzw das Array) immer ums ein aufaddieren, wenn in dem Array url_temp ein eintrag der toplist_temp arrays gefunden wird. In toplist_temp sind alle Einträge verschieden, sprich nur einmal. IN dem url_temp Array sind einträge doppelt, und ich möchte nun feststellen, wie oft sie doppelt sind...

ich weiß nciht, ob der Ansatz richtig ist.. Es funktioniert zumindest nciht :-(

philipp

  1. Hallo philipp,

    als erstes mal ein Tipp: keine Variablen wie a, h, z und C verwenden. Das i ist ok und wird allgemein als Laufvariable verwednet (statt a wäre dann aber j üblich).

    Dein Fehler ist ein = statt einem == beim Vergleich (also im if).

    Ich würde das Ganze ungefähr so schreiben:

    $toplist_temp = my_array_unique($url_temp);
    $toplistcount = count($toplist_temp);
    $urlcount = count($url_temp);

    for ($i=0; $i < $urlcount; $i++) {
       for ($j=0; $j < $toplistcount; $j++) {
          if ($url_temp[i$] == $toplist_temp[j$]) {
             //$h sollte halt auch anders heissen
             $h[$j]++;
          }
       }
    }

    Code wurde nicht getestet. Kann also kleine Fehler enthalten. Ist so aber finde ich etwas lesbarer.

    Ciao
    Thomas