Hilfe bei Schleifen und Array

NanoNuna

Mitglied
Hallo zusammen,

habe eine kurze Frage.

Und zwar, habe ich eine Array mit Elementen und möchte in einer Schleife (foreach) jedes Element vom Array in eine eigene Variable abspeichern.
Also z.B. ich habe 10 Elemente im Array dann möchte ich 10 Variablen habe.

Hat jemand eine Idee wie man sowas machen könnte?

Bin um jede Hilfe dankbar.

Gruß
Nano
 
Keine Ahnung warum, aber so in etwa:

PHP:
foreach($array as $key => $val) $$key = $val;

Man beachte $$key, er verwendet $key als Variablennamen.
 
wie sollen denn die variablem heißen bzw wie ist das array aufgebaut?

beispiel:
PHP:
$array = array( erstens => hallo, zweitens => tschuess);

foreach ($array as $key => $value)
{
$$key = $val;
}

echo $erstens // gibt hallo aus
echo $zweitens; // gibt tschuess aus

nicht getestet!
 
ja lol stimmt haha hab ich auf die schnelle vergessen

PHP:
$array = array( 'erstens' => 'hallo', 'zweitens' => 'tschuess'); 

foreach ($array as $key => $value) 
{ 
$$key = $val; 
} 

echo $erstens // gibt hallo aus 
echo $zweitens; // gibt tschuess aus
 
Hallo,

danke erst mal für Eure antworten.

Wollte nur mal fragen, warum folgendes dann nicht geht?

PHP:
$ss_array=( 
                     "0" => array (
                                             "0" => "Mar 2007",
                                             "1" => "1000€" ,
                                             "2" => "4.5",
                                         )
                  );       

foreach ($ss_array as $key => $value)
{	foreach($value as $key1 => $value1)
	{
		$$key1 = $value1;
	}
}

echo $1;

Bei echo $1 bekomme ich einen Fehler.

Hoffe mir kann da jemand weiter helfen.

Vielen Dank im Voraus.

Gruß
Nano
 
Zuletzt bearbeitet:
http://de.php.net/manual/de/language.variables.php
Also ein Buchstabe davor:

PHP:
<?
$ss_array= array(             "0" => array (
                                             "0" => "Mar 2007",
                                             "1" => "1000€" ,
                                             "2" => "4.5"
                                         )
                  );       

foreach ($ss_array as $key => $value){
    foreach($value as $key1 => $value1)    {
        ${'V'.$key.$key1} = $value1;
    }
}
echo $V01;
?>

Aber sag mal warum willst du das eigentlich überhaupt machen? Und verwendest nicht einfach das array?
 
Hallo engelb,

danke zunächst für deine Hilfe. Ich werde es gleich testen.

Warum ich das machen will

Naja möchte die Werte in die DB schreiben, aber zuvor muss ich die Werte noch parsen, also z.B. in ein Float oder Integer (Hast du evtl. ne Idee wie man das am besten macht) und dann erst in die DB.
Und ich muss das Array Splitten weil es ein sehr grosses ist und da immer eine Elementenbereich im Array eine Zeile in meiner DB Tabelle darstellt.

Vielleicht hast du eine besser Idee. Bin um jeden Vorschlag dankbar.

Gruß
Nano
 
Du kannst das Array ja auch direkt ansprechen, ohne es vorher auf 100 Variablen aufzuteilen. if(is_int($val)) geht genau so wie if(is_int($array[0][1])) oder in deinem beispiel:


PHP:
$sql = "Insert into `tabelle` (`date`, `betrag`, `float`) VALUES \n";
$sqldata[] = array();
foreach ($ss_array as $row){
   if(datumsueberpruefung($row[0]) &&   wertueberpruefung($row[1]) &&   is_float($row[2]))
      $sqldata[] = "('$row[0]','$row[1]','$row[2]')";
}

echo $sql.implode(",\n", $sqldata);

Sorry für ein wenig pseudocode, aber ich weis ja nich genau wie deine Daten aussehen,) aber so ungefähr würdest du am ende eine Query erhalten die du absendest und alle daten einträgst, egal wie groß das array ist. Die umwandlung auf einzelne Variablen ist nicht nötig für so etwas.
 
Zurück