webForumDet fria alternativet

problem med arrayer

3 svar · 217 visningar · startad av nkrantz

nkrantzMedlem sedan apr. 2002755 inlägg
#1

Hej!

Jag håller på med en kalenderapplikation och har lite problem då jag skall visa händelser som inträffar samma tid (eller överlappar en del av sin tid) under samma dag.

Tanken är att informationen skall från databasen lagras i en array med formatet:

$array[datum][starttimme][startminut][sluttimme][slutminut][antal kollisioner]

Detta innebär att jag måste kolla igenom alla poster i arrayen och kontrollera hur många kollisioner den hittar. Jag har testat och testat med det vill sig inte överhuvudtaget!

Hur skall jag lösa problemet?

Mvh,
Niclas

rIkLuNdMedlem sedan feb. 2003174 inlägg
#2

försök nåt som det här:

$array[datum][starttimme] = $h;
$array[datum][startminut] = $min;
$array[datum][sluttimme] = $hs;
$array[datum][slutminut] = $mins;
$array[datum][antal kollisioner] = $kols;
nkrantzMedlem sedan apr. 2002755 inlägg
#3

njea.. asså...

Vad jag vill göra är att loopa igenom alla arrayerna och för varje array kontrollera de andra arrayerna om det finns kollitioner...

:: EDIT ::

Och det är alltså det jag behöver hjälp med, hur göra dvs ;)

/Niclas

nkrantzMedlem sedan apr. 2002755 inlägg
#4

Jag blir galen... har kommit en bit på vägen, så lång att jag kan jämföra de tiderna i arrayen med de andra tiderna i arrayen.. men det strular ändå...

När kolliderar egentligen två tider? Någon som har en bra algoritm?

Här är mitt försök, men den släpper igenom en del...

if (($istartHour."".$istartMinute >= $endHour."".$endMinute && $iendHour."".$iendMinute >= $startHour."".$startMinute) ||
($istartHour."".$istartMinute <= $endHour."".$endMinute && $iendHour."".$iendMinute <= $startHour."".$startMinute))
										{
											return 'cool';
										}
										else
										{
											return 'not so cool';
										}

Nu jämförs tiderna som 1600 < 1700...

Tacksam för all hjälp

Genererad på 376 ms · cache AV · v20260730165559-full.f96bc7eb