Arrays in Datenbank
Klaus
- php
Guten Tag,
ich habe 3 verschiedene Arrays und möchte diese jeweils in eine Spalte einer Datenbank schreiben. Mein Ansatz sah für jedes Array ein Foreach vor, jedoch beginnt dann die Spalte 2 von Array 2 am Ende von Spalte 1 mit Array 1 etc.
Die Datensätze gehören aber zusammen. Das heißt Array1[1], Array2[1] und Array3[1] gehören in dieselbe Zeile.
Jemand vielleicht ne Lösung parat?
Danke im Voraus
Hell-O!
Die Datensätze gehören aber zusammen. Das heißt Array1[1], Array2[1] und Array3[1] gehören in dieselbe Zeile.
Jemand vielleicht ne Lösung parat?
Bestimme die Länge der Arrays (sie sind ja sicher gleich lang) und nimm diesen als Endwert einer for-Schleife. Den aktuellen Wert dieser Schleife verwendest du als aktuellen Index, in etwa wie folgt:
$l = count($array1);
for ($i = 0; $i <= $l; $i++) {
echo $array1[$i].$array2[$i].$array3[$i];
}
Eine Ausnahmebehandlung bei unterschiedlicher Länge kannst du dir sicher selber programmieren.
Siechfred
Hi Siechfred!
$l = count($array1);
for ($i = 0; $i <= $l; $i++) {
echo $array1[$i].$array2[$i].$array3[$i];
}
$i darf nicht kleiner oder gleich $l sein, wenn man $i mit 0 initialisiert. Sonst wird die for-Schleife einmal zu viel durchlaufen.
MfG H☼psel
--
"It's amazing I won. I was running against peace, prosperity, and incumbency."
George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
[Selfcode](http://community.de.selfhtml.org/fanprojekte/selfcode.htm): ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
Hell-O!
$i darf nicht kleiner oder gleich $l sein, wenn man $i mit 0 initialisiert. Sonst wird die for-Schleife einmal zu viel durchlaufen.
Man sollte vor dem Kopieren eben doch schauen, was da steht ;) Danke für die Korrektur.
Siechfred
Das mit der Schleife bekomm ich nicht hin.
Habe auch vorher damit schon etwas probiert. Es sind zich Dateien, die per preg_match_all durchforstet werden und die daraus resultierenden Arrays sind ja mehrdimensional. Und nur innerhalb des foreach, oder for Konstruktes landen die Treffer in der gleichenZeile.
Hier mal ein Teil meines Ansatzes:
$fp=fopen('http://localhost/datei.xml','r');
$inhalt=fread($fp,1000000);
$regex='@<argument>(?:<!\[CDATA\[)?(.*?)(?:\]\]>)?<\/argument>@is';
preg_match_all($regex,$inhalt,$match,PREG_SET_ORDER);
$fp=fopen('http://localhost/datei.xml','r');
$inhalt2=fread($fp,1000000);
$regex2='@<argument1>(.*?)</argument1>@is';
preg_match_all($regex2,$inhalt2,$match2,PREG_SET_ORDER);
foreach ($match as $patch)
{
$l = count($patch[1]);
for ($i = 1; $i <= $l; $i++) {
echo $patch[$i];
}
}
foreach ($match2 as $patch2)
{
$l = count($patch2[1]);
for ($i = 1; $i <= $l; $i++) {
echo $patch2[$i];
}
}
require('mysql.connect.php');
mysql_query("INSERT INTO rss (ARGUMENT1,ARGUMENT2) VALUES ('$patch[$i]','$patch2[$i]')");