Werte von Array in Array schreiben

Hallo.

Wie kann ich mittels PHP Werte von einem Array in einen Array schreiben??

Ich habe es auf verschiedene Arten versucht, jedoch hatte ich nie das gewünschte Ergebnis erzielt.

Ich hab da folgenden Versuch gestartet.

 $gebdates = array();
 $gebtexts = array();
 $tmp = fopen($gebfile,"r");
 while(!feof($tmp)){
 $row = fgets($tmp,999999);
 list($gebdate,$gebtext) = split("\|",$row);
 if($gebdate != ""){
 array\_push($gebdates,$gebdate);
 array\_push($gebtexts,$gebtext);
 }
 }
 fclose($tmp);

jetzt hab ich alle werte der txt-datei in den array $gebdates und $gebtexts dies funzt auch super…

ich kanns mittels $gebdates[$i] auslesen und passt auch gut.

jedoch muss ich nun diesen array $gebdates[$i] mittels split nochmals unterteilen. das trennzeichen ist diesmal „.“ .

jedoch wenn ich das so mache:

 $test=array();
 $test2=array();
 list($bla,$bla2) = split("\.",$gebdates);
 if($gebdates!=""){
 array\_push($test,$bla);
 array\_push($test2,$bla2);
 }

gibt er mir beim echo…

echo "dd $test[$i] mm $test2[$i]";

den wert array zurück, warum…wie gehe ich das an??

ich hab die 2 arrays und will den $gebdates nochmals in 2 teile unterteilen…diese 2 teile sind dd (tag) und mm (monat)…

bitte um hilfe…

grüße,
Sebastian

Hi,

vielleicht solltest Du besser mal sagen was Dein Ziel und was deine Quelle ist…
ich denke nämlich, dass das ganze wesentlich performanter geht als Du es anstrebst…

ich bin z.B. auch eher ein Freund von for-schleifen statt dem feof-zeugs…

und was spricht bei Dir eigentlich dagegen innerhalb des gesplitteten Bereichs weiterzuarbeiten?

also hier:

$gebdates = array();
$gebtexts = array();
$tmp = fopen($gebfile,„r“);
while(!feof($tmp)){
$row = fgets($tmp,999999);
list($gebdate,$gebtext) = split("|",$row);
if($gebdate != „“){
array_push($gebdates,$gebdate);
array_push($gebtexts,$gebtext);
}
}
fclose($tmp);

wenn Du da jetzt einfach weiterarbeitest geht das doch wunderbar…
also gleich ein weiteres split und die daten speichern und fertig…
Man muss auch nicht unbedingt mit array_push arbeiten sondern kann auch
$arraywert[$i] = $dings;
machen…
alternativ
$arraywert[] = $dings;
das bewirkt das gleiche wie ein array_push… bei der ersten Variante kannst Du aber eben einen bestimmten array-key überschreiben…

Grüße
Munich

So ich habs jetzt selbst hinbekommen…du ein bisschen hilfe von munich…
hier mein fertiges script.
die daten in eine txt-datei schreiben und zwar so:
01.07|textfürgebkind
10.07|textfürgebkind2
usw.

Geburtstagskalender

 \* {
 margin:0px;
 padding:5px;
 }

 table {
 background:#99ff00;
 color:#444444;
 font-size:12px;
 text-align:center;
 border:solid 2px #444444;
 }

 .tage {
 background:#444444;
 color:#FFFFFF;
 text-align:center;
 }

 .ueberschrift {
 border-bottom:solid 2px #444444;
 font-size:14px;
 }


 $gebfile = "gebfile.txt";
 $today = date(d); 
 $days = date(t);
 $month = date(m);
 $year = date(y);
 $jahr = date(Y);

 $months = array("Januar", "Februar", "März", "April", "Mai", "Juni",
 "Juli", "August", "September", "Oktober", "November", "Dezember");
 $monat = $months[date("n", time())-1];

 $gebdates = array();
 $gebtexts = array();
 $tmp = fopen($gebfile,"r");
 while(!feof($tmp)){
 $row = fgets($tmp,1000);
 list($gebdate,$gebtext) = split("\|",$row);
 if($gebdate != ""){
 array\_push($gebdates,$gebdate);
 array\_push($gebtexts,$gebtext);
 }
 }

 fclose($tmp);


 $tmp2 = fopen($gebfile,"r");
 $test = array();
 $test2 = array();
 while(!feof($tmp2)){
 $row2 = fgets($tmp2,1000);
 list($bla,$bla2) = split("\.",$row2);
 if(substr($bla2,0,2) == $month){
 array\_push($test,$bla);
 array\_push($test2,$bla2);
 } 
 } 
 fclose($tmp2); 

 $max = count($gebdates);

 echo "

„;
echo " Geburtstagskalender“;
echo " $monat $jahr";

$maxtest = count($test);

if ($maxtest == 0)
{
echo „Kein Geburtstagskind!“;
}

for($i=1;$i$i$gebtexts[$j]";
}
}
}
echo „“;

?>

mir gefällts und läuft auch alles bestens…

grüße,
Sebastian