Uwe Lichtenstein: Integerwerte aus einem array in eine Variable auflisten

Liebe Forumer,

wahrscheinlich ganz einfach, nur komm ich nicht drauf.
Ich habe folgenden array $daten:
( [0] => 331 [1] => 332 [2] => 347 [3] => 355 [4] => 361 [5] => 366 [6] => 385 [7] => 388 ).

Die Werte dieses arrays möchte ich in eine Variable speichern, die folgendermaßen aussehen soll:

$var = (331,332,347,355,361,366,385,388);

damit ich folgende Abfrage starten kann:

$query = "SELECT zahl from tabelle WHERE zahl in $var";

Ich habe folgendes probiert:

$zahl = count($daten);
for ($i=0; $i<$zahl; $i++)
 {
 $var1 = $daten[$i];
 $var = "$var" + "$var1" + ",";
 }
hierbei werden die einzelnen Werte addiert und nicht durch Kommata getrennt - wie ich es eigentlich haben möchte.
Bei folgendem Versuch
$var = '$var' + '$var1' + ',';
erhalte ich den Wert 0.

Kann mir jemand helfen?

Vielen Dank,
Uwe

  1. Hallo Uwe!

    $zahl = count($daten);
    for ($i=0; $i<$zahl; $i++)
    {
    $var1 = $daten[$i];
    $var = "$var" + "$var1" + ",";
    }
    hierbei werden die einzelnen Werte addiert und nicht durch Kommata getrennt - wie ich es eigentlich haben möchte.
    Bei folgendem Versuch
    $var = '$var' + '$var1' + ',';
    erhalte ich den Wert 0.

    Strings werden in PHP mit einem Punkt verkettet.
    Versuche es mal so:

    $var = "(".$var[0];
    for ($i=1; $i<count($daten); $i++)
       $var.=",".$daten[$i];
    $var.=")";

    VG Simon

  2. Liebe Forumer,

    wahrscheinlich ganz einfach, nur komm ich nicht drauf.
    Ich habe folgenden array $daten:
    ( [0] => 331 [1] => 332 [2] => 347 [3] => 355 [4] => 361 [5] => 366 [6] => 385 [7] => 388 ).

    Die Werte dieses arrays möchte ich in eine Variable speichern, die folgendermaßen aussehen soll:

    $var = (331,332,347,355,361,366,385,388);

    Du meinst
       $var = "(331,332,347,355,361,366,385,388)";

    damit ich folgende Abfrage starten kann:

    $query = "SELECT zahl from tabelle WHERE zahl in $var";

    Ich habe folgendes probiert:

    $var = "(".implode(",",$daten).")";

    Merke: String-Verkettung geht mit "PUNKT", nicht mit "PLUS".

    Und implode sorgt simpel dafür, ein Array in einen String mit Trennzeichen umzuwandeln.

    - Sven Rautenberg

  3. Lieber Simon, lieber Sven,

    es funktioniert.

    Bei Simons Version erhalte ich zwar folgendes:

    (,489,490,491,492,493,494) aber das ist ja schon so gut wie richtig.

    Vielen Dank für Eure schnelle Hilfe,

    Uwe