PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehrdimensionales Array für Monate/Jahre?


mapel110
2008-05-30, 08:31:16
Ich hab beispielsweise:
2008 11
2008 12
2009 1
2009 2

Da bietet sich das doch an. $aktueller_monat[0][0] würde dann also 2008/11 ergeben.

Wie muss das aber beim Reinkopieren aussehen?

$aktueller_monat[$j]=$jahr;
$aktueller_monat[$j][$k]=$monat;
?
Ich will das ja danach noch getrennt ansprechen können.

p.s.
Wer ne gute Seite mit Erklärungen dafür kennt, immer her damit. Ich find nur Müll.

DocEW
2008-05-30, 09:02:53
Eher so, wenn ich dich richtig verstehe:
$aktueller_monat[$j][0]=$jahr;
$aktueller_monat[$j][1]=$monat;

Da fehlt dann aber noch die komplette Logik, wie du vom aktuellen Monat aus hochzählst. Also irgendwas mit Modulo 12 usw...

Kinman
2008-05-30, 09:29:14
Du wills für jeden monat jedes jahr einen wert abspeichern?


$array[$jahr][$monat] = $wert;


Oder hab ich das falsch verstanden?

mfg Kinman

mapel110
2008-05-30, 09:36:13
Ja. :)

Derzeitiger Ansatz sieht jetzt so aus.


Speichern im Array:

$monat_anzeige[] = array('jahr' => array($_SESSION[datum_beginn_greg_jahr]), 'monat' => array($_SESSION[datum_beginn_greg_monat]));
FÜLLEN
$monat_anzeige[] = array('jahr' => array($_SESSION[datum_ende_greg_jahr]), 'monat' => array($_SESSION[datum_ende_greg_monat]));

Ausgabe eines Elements:

echo "<td>".$monat_anzeige[0]['jahr'][0]."</td>";

Jetzt fehlt nur noch das entsprechende Füllen bevor das letzte Element reingeschrieben wird.

PatkIllA
2008-05-30, 10:04:05
wo kommt denn das datum her?
Kannst du das nicht einfach direkt formatieren lassen?
Zum Rechnen und Anzeigen gibt es schon praktisch alles fertig und es artet fast immer in einen Krampf aus da was selbst zu schreiben.

mapel110
2008-05-30, 10:29:21
Sowas such ich. Nur halt für Monate... Imo ists mehr Arbeit, dieses Beispiel umzuschreiben, als selbst was zu entwickeln. ;(


This may not be the best way to do it, but it works very well for me.

<?php
/**
* Function used to find the dates of specific days between
* two different dates. So, if you want to find all the
* mondays and all the wednesdays between 2 dates, this
* function is right for you.
*
* @param string $startDate e.g. 2007-01-31
* @param string $endDate e.g. 2007-12-31
* @param csv string $days e.g. 'Su,M,T,W,TH,F,S';
* @return array
*/
function getDaysBetween($startDate, $endDate, $days){
$endDate = strtotime($endDate);
$days = explode(',', 'M,W');
$dates = array();
foreach($days as $day){
$newDate = $startDate;
switch ($day){
case 'Su':
$day = 'Sun';
break;
case 'M':
$day = 'Mon';
break;
case 'T':
$day = 'Tue';
break;
case 'W':
$day = 'Wed';
break;
case 'Th':
$day = 'Thur';
break;
case 'F';
$day = 'Fri';
break;
case 'S':
$day = 'Sat';
break;
}
while(($date = strtotime($newDate)) <= $endDate){
$dates[] = date('Y-m-d', $date)."\n";
$newDate = date('Y-m-d', $date).' next '.$day;
}
}

sort(array_unique($dates));
return $dates;
}
?>

Example:

$startDate = '2006-08-28';
$endDate = '2006-10-09';
$days = 'M,W';

then

getDaysBetween($startDate, $endDate, $days);

returns

Array
(
[0] => 2006-08-28
[1] => 2006-09-04
[2] => 2006-09-11
[3] => 2006-09-18
[4] => 2006-09-25
[5] => 2006-10-02
[6] => 2006-10-09
[7] => 2006-08-28
[8] => 2006-08-30
[9] => 2006-09-06
[10] => 2006-09-13
[11] => 2006-09-20
[12] => 2006-09-27
[13] => 2006-10-04
)

Pinoccio
2008-05-30, 13:24:35
Datumsdifferenzen sind ein spannendes Thema. :-)

Mir ist nicht ganz klar, was du da machst bzw machen willst und ich vermute, dir auch nicht. Ist dein Problem evtl, wie du mit zwei/mehr-dimensionalen Array umgehen musst?

Dürfte ich dir übrigens
zwecks
besserer
Lesbarkeit
durch
erhaltene
Einrückungen
die [ code]-Tags empfehlen? ;-)
mfg

mapel110
2008-05-30, 13:35:55
Ich hab ein Anfangsdatum und ein Enddatum. Ich will die Monate dazwischen haben. Ich habs mittlerweile gelöst.

Mein Problem war vorallem der Jahreswechsel. Ich habs jetzt einfach umgerechnet in unixtimestamps, damit hab ich dann einwandfrei mein Abbruch-Kriterium.
In der Schleife dazwischen brauch ich halt meine Monate und Jahre schön getrennt und die schreib ich ihn ein Array. Funzt soweit. Montag kommt dann die entsprechende Verarbeitung nach diesen Daten. Freut euch schon mal. :biggrin:

Kinman
2008-05-30, 13:45:44
Suchfunktion FTW. Dann wärst gleich auf diese Möglichkeit gekommen.
http://www.forum-3dcenter.org/vbulletin/showthread.php?t=242731

mfg Kinman