Done: Array mit Variablem namen?

Hallo zusammen,

Ich mochte 9 cockies auslesen , die werden explodet da in jedem cockie 3 verschiedene daten enthalten sind.
So wie das script da unten steht funktioniert es auch , aber ich will die
Daten in der while schleife direkt weiter verarbeiten!

Also muß ich den array namen irgendwie variabel bekommen:

$search_$i[0]
$search_$i[1]
$search_$i[2]

So ähnlich sollte es aussehen aber so funktioniert es nicht :-(
Hab schon alles mögliche probiert und komm nicht weiter ....

Script:
$i="0";
while($i != 10)
{
$tmp = 'search_'.$i;
$$tmp = explode("@/@", $_COOKIE["search_$i"]);
$i++;
}

//Nur zum Testen
     echo $search_9[0] . "<br>";
     echo $search_9[1] . "<br>";
     echo $search_9[2] . "<br>";

echo $search_8[0] . "<br>";
     echo $search_8[1] . "<br>";
     echo $search_8[2] . "<br>";

echo $search_7[0] . "<br>";
     echo $search_7[1] . "<br>";
     echo $search_7[2] . "<br>";

echo $search_7[0] . "<br>";
     echo $search_7[1] . "<br>";
     echo $search_7[2] . "<br>";

echo $search_6[0] . "<br>";
     echo $search_6[1] . "<br>";
     echo $search_6[2] . "<br>";

echo $search_5[0] . "<br>";
     echo $search_5[1] . "<br>";
     echo $search_5[2] . "<br>";

echo $search_4[0] . "<br>";
     echo $search_4[1] . "<br>";
     echo $search_4[2] . "<br>";

echo $search_3[0] . "<br>";
     echo $search_3[1] . "<br>";
     echo $search_3[2] . "<br>";

echo $search_2[0] . "<br>";
     echo $search_2[1] . "<br>";
     echo $search_2[2] . "<br>";

echo $search_1[0] . "<br>";
     echo $search_1[1] . "<br>";
     echo $search_1[2] . "<br>";

echo $search_0[0] . "<br>";
     echo $search_0[1] . "<br>";
     echo $search_0[2] . "<br>";

Wäre echt Dankbar für eure Hilfe.

  1. echo $begrüßung;

    Also muß ich den array namen irgendwie variabel bekommen:

    $search_$i[0]
    $search_$i[1]
    $search_$i[2]

    Spricht was gegen $search[$i][0], $search[$i][1], $search[$i][2] usw.?

    echo "$verabschiedung $name";

    1. Spricht was gegen $search[$i][0], $search[$i][1], $search[$i][2] usw.?

      stichwort mehrdimensionale arrays ;)

  2. Ich mochte 9 cockies auslesen , die werden explodet

    Oh, bei Dir soll's Hühnerfrikassee geben?

    Siech*SCNR*fred

    --
    Obacht, hinter jedem noch so kleinen Topf könnte ein Koch sitzen!
  3. Moin!

    Ich mochte 9 cockies auslesen , die werden explodet da in jedem cockie 3 verschiedene daten enthalten sind.
    So wie das script da unten steht funktioniert es auch , aber ich will die
    Daten in der while schleife direkt weiter verarbeiten!

    Also muß ich den array namen irgendwie variabel bekommen:

    Variable Variablennamen sind IMMER ganz schlechter Programmierstil. Vor allem, wenn man nicht dazu gezwungen ist, sie zu verwenden - und das bist du nicht.

    Abgesehen davon produzierst du sowieso einen eher ungünstigen Code, den man in vielen Details kritisieren muß:

    Script:
    $i="0";

    $i soll eine Zahlvariable sein - warum initialisierst du sie hier mit einem String? $i = 0; - und fertig!

    while($i != 10)

    Eine while-Schleife zum simplen Hochzählen einer Variablen zu verwenden ist ebenfalls ungünstig. Das verschleiert den Sinn des Codes. Nutze for-Schleifen, wenn Variablen hoch- oder runtergezählt werden sollen: for ($i=0; $i<10; $i++) {...} Schon wird in einer kompletten Zeile alles erwähnt, was für diese Zählschleife wichtig ist. Es wird nicht über drei Zeilen verstreut, von denen die eine oder andere mit Pech auch mal verloren gehen kann.

    $tmp = 'search_'.$i;
    $$tmp = explode("@/@", $_COOKIE["search_$i"]);

    Immer, wenn man variable Variablen einsetzen will, ist die Nutzung eines schlichten Arrays die deutlich bessere Methode.

    Wenn es denn unbedingt mit "search" benannt sein muß:
    $my_cookies["search_$i"] = explode("@/@", $_COOKIE["search_$i"]);

    Viel besser, weil numerischer Index:
    $search[$i] = explode("@/@", $_COOKIE["search_$i"]);

    Zugriff dann mittels $search[0][0] bis $search[9][2] - bzw. in der Schleife eben $search[$i][2]

    - Sven Rautenberg

    --
    "Love your nation - respect the others."