Fabienne: Arrays....

Hi,

wie kann man auf den "Counter" (oder wie der auch immer heißt) einer Arrays zugreifen?

$array[mein_array_counter1]=array("bhk","bjhgj");
$array[mein_array_counter2]=array("bdsgsdfhk","sdfgdsfbjhgj");

Wie kann man in einer foreach-Schleife auf "mein_array_counter" zugreifen?

Dank euch!

  1. Hello,

    Wie kann man in einer foreach-Schleife auf "mein_array_counter" zugreifen?

    Ohne einen mitlaufen zu lassen, leider gar nicht.

    Aber versuch es auch mal mit key() current(), was dabei herauskommt.
    Da ich nicht weiß, was Du vorhast, kann ich Dir auch nicht wirklich helfen.

    Ein Array in PHP muss man sich vereinfacht als verkettete Liste vorstellen:

    Wenn Du mit foreach() arbeitest, wird vom Startanker bis zum Endeanker jedes Element der Kette abgeklappert. Die Elemente haben keine eigene "Nummer", sondern nur ihren aufgeprägten Index, Ihren Typ und ihren Wert (der auch wieder ein zeiger auf einen Zweig sein kann).

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Re Hello,

      Da ich nicht weiß, was Du vorhast, kann ich Dir auch nicht wirklich helfen.

      Ich will ein Array (das in einem Txt-File gespeichert ist) durchlaufen und in anderer Reihenfolge und mit anderen Daten, aber mit gleichem "Array_Counter" wieder in einem TXT-File abspeichern.

      Ich schau mal nach den zwei Funktionen key() und current() (kenn ich beide nicht).

      Danke!

  2. Hallo Fabienne,

    foreach() kannst Du in PHP auf zwei Arten machen

    foreach($array as $value)
      {
        print "value: " . $value . "\n";
      }

    oder

    foreach($array as $key => $value)
      {
        print "key: " . $key . "\n";
        print "value: " . $value . "\n";
      }

    Du haettest also gerne Methode 2, wobei $key dein gesuchter Kandidat ist.

    Gruß,

    Dieter

    1. foreach($array as $key => $value)
        {
          print "key: " . $key . "\n";
          print "value: " . $value . "\n";
        }

      Hi Dieter,

      nein, leider nicht. Du greist damit ja nur auf die Keys (Schlüssel) des Arrays zu, ich möchte aber den "Bezeichner" oder "ARRAY_COUNTER" des Arrays haben (ich weiß nicht, wie das Teil richtig heißt)....

      $array[ARRAY_COUNTER]=array(........);

      Trotzdem Danke!

      1. Hello,

        nein, leider nicht. Du greist damit ja nur auf die Keys (Schlüssel) des Arrays zu, ich möchte aber den "Bezeichner" oder "ARRAY_COUNTER" des Arrays haben (ich weiß nicht, wie das Teil richtig heißt)....

        Du willst den Pointer auf das Element, und ich weiß nicht, ob man den überhaupt ermitteln kann.
        Ich denke, dass das Ding gekapselt ist und bleibt.

        Du kannst mittels

        • reset()
        • next()
        • current()
        • prev()
        • end()

        navigieren, aber den Zeiger selber bekommst Du unter Normalumständen nicht.

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. Du willst den Pointer auf das Element, und ich weiß nicht, ob man den überhaupt ermitteln kann.
          Ich denke, dass das Ding gekapselt ist und bleibt.
          navigieren, aber den Zeiger selber bekommst Du unter Normalumständen nicht.

          Doch, ich glaube schon:

          Meine Idee:

          $array[bezeichner1]=array(key1=>"Wert1",key2=>"Wert2");
          $array[bezeichner2]=array(key1=>"Wert3",key2=>"Wert4");

          So. Und jetzt:

          $ersatzarray=$array;

          Sollte doch jetzt so aussehen:

          $ersatzarray=array(bezeichner1=>array(.......),bezeichner2=>array(...));

          ODER????

          So und dann:

          foreach($ersatzarray as $bezeichner => $ursprung_array)
          {

          print "Juhu!!!! ====>>>>> ".$bezeichner;
          foreach($ursprung_array as $key=>$value)
          {
          // Hier die Werte des Ursprungarrays!!!!!
          }

          }

          Hoffe, ich konnte jemand Weiterhelfen!!!

          Grüße Fabienne