Integerwerte aus einem array in eine Variable auflisten
Uwe Lichtenstein
- php
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
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
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
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