Joshua: Index von Element im Array ermitteln

Hallo!

Ich habe ein kleines Problem, und zwar folgendes. Mittels URL wird eine ID an das PHP Script übergeben. Diese ID soll dann in eine Variable gespeichert werden. Weiters soll dann ein Array durchsucht werden, ob ein Element daraus die ID enthält... Leider stehe ich heute dabei etwas auf der Leitung. Jedenfalls Sieht das Array so aus:

[code:lang=php]
$id = $_GET['id'];

$array = array(

"ID_2%name%nachname%plz%hausnummer%ip%datum%uhrzeit",
 "ID_3%name%nachname%plz%hausnummer%ip%datum%uhrzeit",
 "ID_8%name%nachname%plz%hausnummer%ip%datum%uhrzeit",
 "ID_9%name%nachname%plz%hausnummer%ip%datum%uhrzeit",
 "ID_45%name%nachname%plz%hausnummer%ip%datum%uhrzeit",

)
[/code]

Jetzt würde ich gerne das Element haben, welches z.b. die Zeichenfolge ID_2 oder ID_45 enthält.

Wie gesagt, leider komme ich da nicht ganz weiter...

Naja, schönen Tag noch und danke schon mal im Voraus für eure Hilfe.

Gruss,
 Joshua

  1. Hi,

    array_search(); sollte dir da helfen.

    $key = array_search('ID_2', $array);

    mfg
    Knusperklumpen

    1. Hallo!

      array_search(); sollte dir da helfen.

      $key = array_search('ID_2', $array);

      Nein, tut es nicht. Das array sieht ja nicht so aus:

        
        
      array(  
       "id",  
       "vorname",  
       "nachname",  
      ...  
      );  
      
      

      sondern so:

        
       array(  
        "id%vorname%nachname",  
        "id2%vorname%nachname",  
      ...  
      );  
      
      

      mfg
      Knusperklumpen

      Gruss,
       Joshua

      1. Ach so, sorry, nicht richtig gelesen.
        Du könntest doch auch Assoziative Arrays nehmen, bei denen die ID der Key ist.

        Ansonsten ist wohl die foreach-Schleife die Beste Lösung.

        mfg
        Knusperklumpen

  2. echo $begrüßung;

    Weiters soll dann ein Array durchsucht werden, ob ein Element daraus die ID enthält...

    Du könntest mit foreach durch das Array laufen und mit geeigneten Stringfunktionen den Teil zwischen '_' und dem ersten '%' mit der ID vergleichen.

    Du könntest auch array_filter() verwenden. Die Callback-Funktion sollte true zurückliefern, wenn... siehe oben. Damit erhältst du ein Array mit einem oder mehreren Elementen. Die Keys bleiben übrigens erhalten. foreach oder reset() und key() helfen weiter, die/den Key zu ermitteln.

    echo "$verabschiedung $name";

    1. echo $begrüßung;

      echo $ebenfalls;

      Du könntest mit foreach durch das Array laufen und mit geeigneten Stringfunktionen den Teil zwischen '_' und dem ersten '%' mit der ID vergleichen.

      Danke mal für deinen Vorschlag. Werde ihn gleich umsetzen. (Brauche übrigens den ganzen string "id_x" - also bis zum ersten % lesen und dann abbrechen reicht schon...)

      echo "$verabschiedung $name";

      echo "Gruss,
        Joshua";

  3. 你好 Joshua,

    $id = $_GET['id'];

    $array = array(

    "ID_2%name%nachname%plz%hausnummer%ip%datum%uhrzeit",
    "ID_3%name%nachname%plz%hausnummer%ip%datum%uhrzeit",
    "ID_8%name%nachname%plz%hausnummer%ip%datum%uhrzeit",
    "ID_9%name%nachname%plz%hausnummer%ip%datum%uhrzeit",
    "ID_45%name%nachname%plz%hausnummer%ip%datum%uhrzeit",

    )

    
    >   
    > Jetzt würde ich gerne das Element haben, welches z.b. die Zeichenfolge  
    > ID\_2 oder ID\_45 enthält.  
      
    Musst du das für viele Elemente machen? Viel ist hierbei mehrfach bei  
    einem Array von mehr als 250 Einträgen. Wenn das nicht der Fall ist, wird  
    wohl eine einfache for($i=0;$i<count($array);++$i)-Schleife völlig  
    ausreichen. Ist das wohl der Fall, kannst du den Array einmal vollständig  
    durchgehen und für jedes Element in einem assoziativen Array eine  
    ID=>Index-Zuordnung erstellen. Letzteres lohnt sich aber wirklich nur, wenn  
    du oft einen Index finden musst. Ansonsten ist der Aufwand höher als eine  
    einfache, lineare Suche.  
      
    再见,  
     克里斯蒂安  
    
    -- 
    [Bruce Lee, der Meister](http://ck.kennt-wayne.de/bruce-lee-der-meister) | [Neues Design im Thema](http://ck.kennt-wayne.de/neues-design-im-thema)  
    Sein oder nicht sein, das ist hier die Frage!  
      
    <http://wwwtech.de/>  
    
    
    1. Hallo!

      Musst du das für viele Elemente machen? Viel ist hierbei mehrfach bei
      einem Array von mehr als 250 Einträgen.

      Naja... das kommt drauf an. Es handelt sich um ein Kommentar script. - Bei dem die Beiträge durchgegangen werden, die kommentiert worden sind bzw. werden. Also... das ist ziemlich unterschiedlich, natürlich kann es nach einiger zeit soweit sein, dass mal gut und gerne 250 elemente im Array vorhanden sind.

      Gruss
       Joshua

      1. 你好 Joshua,

        Musst du das für viele Elemente machen? Viel ist hierbei mehrfach bei
        einem Array von mehr als 250 Einträgen.

        Naja... das kommt drauf an. Es handelt sich um ein Kommentar script. -
        Bei dem die Beiträge durchgegangen werden, die kommentiert worden sind
        bzw. werden. Also... das ist ziemlich unterschiedlich, natürlich kann es
        nach einiger zeit soweit sein, dass mal gut und gerne 250 elemente im
        Array vorhanden sind.

        Wie gesagt – es bringt erst dann was, wenn du das _mehrfach_ machen musst.
        Wenn du den Index nur ein einziges mal finden must, dann wird es dadurch
        nur langsamer, egal wieviele Elemente das Array hat.

        再见,
         克里斯蒂安

        --
        Bruce Lee, der Meister | Neues Design im Thema
        <sasaa> frauen sind viel verpeilter als maenner
        http://wwwtech.de/