Array's (nest) coderen in foreach?
Het aantal sliders is variabel, de 3 links staan apart.
Voorbeeld code: (met 2 wissel momenten)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
if($epochTime > 1427641200) { // zo 29 maart 17:00 uur
// slider images
img1
img2
img3
img4
img5
img6
// seperate links
link1
link2
link3
// background image
imgA
} elseif($epochTime > 1427040000) { // zo 22 maart 17:00 uur
// slider images
img3
img4
img7
img8
// seperate links
link2
link4
link5
// background image
imgB
}
// slider images
img1
img2
img3
img4
img5
img6
// seperate links
link1
link2
link3
// background image
imgA
} elseif($epochTime > 1427040000) { // zo 22 maart 17:00 uur
// slider images
img3
img4
img7
img8
// seperate links
link2
link4
link5
// background image
imgB
}
Nu wil ik enkele weken vooruit coderen met de juiste img, links en bg voor dat moment en copy/paste dezelfde if() code steeds met de juiste aanpassingen.
Dat wil ik graag makkelijker maken door foreach te gaan gebruiken.
Hoe codeer je dat nu?
Hoe formuleer je een array zodat het [tijdstip][afbeeldingen][links][background] die bij elkaar horen verwerkt kan worden met foreach?
Alvast bedankt voor het meedenken!
Gewijzigd op 25/03/2015 10:12:18 door Harry Hartman
Daarna trek je alleen de juiste records uit de database met de query die je hiervoor nodig hebt.
Vervolgens is pas de foreach aan de beurt dat dan overigens kinderspel is
Je zou er bijvoorbeeld (om een idee te geven) voor kunnen kiezen om een tabel met de naam 'afbeeldingen' te maken waarin je alle mogelijke afbeeldingen opslaat. Ditzelfde kun je doen voor links en backgrounds. Vervolgens zou je dan een tabel met een naam als bijvoorbeeld 'banners' kunnen maken waarin je alleen de starttijd inzet en dan een een verwijzing naar een record in de andere tabellen. Zoiets dus:
-id
-starttime // datetime wanneer begonnen wordt met het laten zien van deze banner
-image_id // verwijzing naar de juiste afbeelding
-link_id // verwijzing naar de juiste link
-background_id // verwijzing naar de juiste achtergrond
Spreekt dit je een beetje aan? dan kunnen we er wat dieper op in gaan.
Ik ben bekend met jouw idee en techniek maar dacht aan een simpele oplossing middels array's en foreach.
Toevoeging op 25/03/2015 14:11:39:
Na enig puzzel en zoekwerk ben ik hier op uit gekomen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$Data = array(
array(1427641200, array("img3","img4","img7","img8"), "link2", "link4", "link5", "imgB"), // 29 maart
array(1427040000, array("img1","img2","img3","img4","img5","img6"), "link1", "link2", "link3", "imgA") // 22 maart
);
foreach ($Data as $Value) {
if($epochTime > $Value[0]) {
echo $Value[0]."<br>";
foreach ($Value[1] as $ValueImgs) { echo $ValueImgs."<br>"; }
echo $Value[2]."<br>".$Value[3]."<br>".$Value[4]."<br>";
echo $Value[5];
}
}
array(1427641200, array("img3","img4","img7","img8"), "link2", "link4", "link5", "imgB"), // 29 maart
array(1427040000, array("img1","img2","img3","img4","img5","img6"), "link1", "link2", "link3", "imgA") // 22 maart
);
foreach ($Data as $Value) {
if($epochTime > $Value[0]) {
echo $Value[0]."<br>";
foreach ($Value[1] as $ValueImgs) { echo $ValueImgs."<br>"; }
echo $Value[2]."<br>".$Value[3]."<br>".$Value[4]."<br>";
echo $Value[5];
}
}
Gewijzigd op 25/03/2015 14:13:10 door Harry Hartman
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$schedule = array(
array(
'start' => '15-03-2015 08:00:00',
'image' => 'imagefile.jpg',
'background' => '#333',
'link' => 'http://vette-kroketten.nl'
),
array(
'start' => '22-03-2015 08:00:00',
'image' => 'imagefile2.jpg',
'background' => '#F3F3F3',
'link' => 'http://dikke-pannekoeken.nl'
),
);
?>
$schedule = array(
array(
'start' => '15-03-2015 08:00:00',
'image' => 'imagefile.jpg',
'background' => '#333',
'link' => 'http://vette-kroketten.nl'
),
array(
'start' => '22-03-2015 08:00:00',
'image' => 'imagefile2.jpg',
'background' => '#F3F3F3',
'link' => 'http://dikke-pannekoeken.nl'
),
);
?>
Of hetzelfde in JSON?
Toevoeging op 25/03/2015 14:16:39:
ik zou alleen die datum-getallen omzetten in een leesbaar formaat voor jezelf.
Nieuwste array met gegevens steeds bovenaan in de array toevoegen...
Toevoegen na if loop: break; // als meest recente time klopt zodat oudere niet worden meegenomen, breekt uit totale loop
Dat betekent dat het gelukt is?