udo: suchen im hash

hallo ihr alle!

kann in einem hash nach festen anfangsmuster der schlüssel gesucht werden?
der konkrete fall bei mir: ich habe einen hash, der als schlüssel 3stellige zahlen und 3stellige zahlen plus eine nachkommastelle enthält. nun habe ich als suchschlüssel nur eine 3stellige zahl und möchte nun feststellen, welche schlüssel in dem hash diesem suchschlüssel entsprechen: entweder pur oder zusätzlich noch mit einer nachkommastelle...

kann dies mit hash-funktionen gelöst werden oder muss ich selbst eine funktion schreiben... vielen dank im voraus

gruß, udo

  1. Hallo udo,

    kann in einem hash nach festen anfangsmuster der schlüssel gesucht werden?
    der konkrete fall bei mir: ich habe einen hash, der als schlüssel 3stellige zahlen und 3stellige zahlen plus eine nachkommastelle enthält. nun habe ich als suchschlüssel nur eine 3stellige zahl und möchte nun feststellen, welche schlüssel in dem hash diesem suchschlüssel entsprechen: entweder pur oder zusätzlich noch mit einer nachkommastelle...

    Ich würde es folgendermaßen lösen: Lass dir mit keys() alle Schlüssel des Hash zurückgeben. keys() gibt ein Array zurück, dass du mit foreach() durchgehst. Während des Durchlaufs kannst du die einzelnen Werte mit einem regulären Ausdruck vergleichen.

    Viele Grüße
      Patrick Canterino

    --
    "Jeder hat einmal klein angefangen, ich zum Beispiel als Baby." (Heinz Erhardt)
    1. Hallo,

      regexp halte ich hier für zuviel aufwand,
      ich würde eher mit if(substr($var,0,3) eq $key){..} arbeiten,
      da sparst du den ganzen overhead für die regexp maschine.

      Bert

      --
      E492: Not an editor command: Wq
      ln -s /dev/brain
      Selbst ist der Mann, wenn er sich verdoppeln kann