Array : hoe haal je een deel er uit?
Code (php)
1
2
3
2
3
$score = array ("1", "20", "69", "0", "58", "2", "20", "63", "0", "46", "3", -> etc..);
$onderwerp = array ("Fiets","Auto","Bus","Vliegtuig", "Te voet", "Trein", -> etc..);
$uitzondering = array ("D", "K", "E", "G", "NG", -> etc..);
$onderwerp = array ("Fiets","Auto","Bus","Vliegtuig", "Te voet", "Trein", -> etc..);
$uitzondering = array ("D", "K", "E", "G", "NG", -> etc..);
Het aantal in de content van de array $score is altijd een veelvoud van 5 van de array $onderwerp. Dus als $onderwerp uit 11 waarden bestaat dat is $score 55 posities groot. $uitzondering is altijd gelijk aan $onderwerp.
De tabel moet er als volgt uit komen te zien...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<tr>
<td>$score[0]<td>
<td>$onderwerp[0]<td>
<td>$uitzondering[0]<td>
<td>$score[1]<td>
<td>$score[2]<td>
<td>$score[3]<td>
<td>$score[4]<td>
</tr>
<tr>
<td>$score[5]<td>
<td>$onderwerp[1]<td>
<td>$uitzondering[1]<td>
<td>$score[6]<td>
<td>$score[7]<td>
<td>$score[8]<td>
<td>$score[9]<td>
</tr>
Etc.
<td>$score[0]<td>
<td>$onderwerp[0]<td>
<td>$uitzondering[0]<td>
<td>$score[1]<td>
<td>$score[2]<td>
<td>$score[3]<td>
<td>$score[4]<td>
</tr>
<tr>
<td>$score[5]<td>
<td>$onderwerp[1]<td>
<td>$uitzondering[1]<td>
<td>$score[6]<td>
<td>$score[7]<td>
<td>$score[8]<td>
<td>$score[9]<td>
</tr>
Etc.
Waarmee kan ik dit het beste doen? Met een while loop? Maar hoe laat je hem dan tellen? Het lastige hieraan is dat je de array $score 5 posities door mag laten lopen en dan moet stoppen. En daarna weer in een volgende loop op de volgende positie moet verder gaan.
Wie kan mij op weg helpen hiermee?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$i = 0 ;
$score_i = 0;
while(!empty($onderwerp[$i]))
{
echo "<tr>" ;
echo "<td>".$score[$score_i]."</td>" ;
echo "<td>".$onderwerp[$i]."</td>" ;
echo "<td>".$uitzondering[$i]."</td>" ;
$score_i++;
while($score_i < (($i+1)*5))
{
echo "<td>".$score[$score_i]."</td>" ;
$score_i++ ;
}
echo "</tr>" ;
$i++ ;
}
?>
$i = 0 ;
$score_i = 0;
while(!empty($onderwerp[$i]))
{
echo "<tr>" ;
echo "<td>".$score[$score_i]."</td>" ;
echo "<td>".$onderwerp[$i]."</td>" ;
echo "<td>".$uitzondering[$i]."</td>" ;
$score_i++;
while($score_i < (($i+1)*5))
{
echo "<td>".$score[$score_i]."</td>" ;
$score_i++ ;
}
echo "</tr>" ;
$i++ ;
}
?>
Ongeveer zo. Stylen doe je maar lekker zelf
Gewijzigd op 01/01/1970 01:00:00 door Jacco Engel
Achter $i = 0 nog ff een punt komma ;)
Hij loopt nu als volgt :
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
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
<tr>
<td>$score[0]<td>
<td>$onderwerp[0]<td>
<td>$uitzondering[0]<td> // hierna moet de loop content 1,2,3,4 oppakken
</tr>
<tr>
<td>$score[0]<td> // content 5
<td>$onderwerp[1]<td>
<td>$uitzondering[1]<td>
<td>$score[0]<td> // deze waarde moet er uit blijven
<td>$score[1]<td> // hier moet de teller verder met 6, 7 etc.
<td>$score[2]<td>
<td>$score[3]<td>
<td>$score[4]<td>
</tr>
<tr>
<td>$score[5]<td>
<td>$onderwerp[2]<td>
<td>$uitzondering[2]<td>
<td>$score[5]<td>
<td>$score[6]<td>
<td>$score[7]<td>
<td>$score[8]<td>
<td>$score[9]<td>
</tr>
etc....
<td>$score[0]<td>
<td>$onderwerp[0]<td>
<td>$uitzondering[0]<td> // hierna moet de loop content 1,2,3,4 oppakken
</tr>
<tr>
<td>$score[0]<td> // content 5
<td>$onderwerp[1]<td>
<td>$uitzondering[1]<td>
<td>$score[0]<td> // deze waarde moet er uit blijven
<td>$score[1]<td> // hier moet de teller verder met 6, 7 etc.
<td>$score[2]<td>
<td>$score[3]<td>
<td>$score[4]<td>
</tr>
<tr>
<td>$score[5]<td>
<td>$onderwerp[2]<td>
<td>$uitzondering[2]<td>
<td>$score[5]<td>
<td>$score[6]<td>
<td>$score[7]<td>
<td>$score[8]<td>
<td>$score[9]<td>
</tr>
etc....
Zoals je ziet is dit nog niet correct...wat zou je hier aan kunnen doen? Hij moet dus springen door een array.
Gewijzigd op 01/01/1970 01:00:00 door Martijn Roverts
Zou nu beter moeten zijn
Is het ook mogelijk om bijvoorbeeld $score[0] over te slaan. Nu staat deze 2 keer in de loop. 1x voor het onderwerp en de uitzondering en 1x erna..en verder de loop.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<td>$score[0]<td>
<td>$onderwerp[0]<td>
<td>$uitzondering[0]<td>
<td>$score[0]<td> // deze er uit zeg maar..
<td>$score[1]<td>
<td>$score[2]<td>
<td>$score[3]<td>
<td>$score[4]<td>
<td>$onderwerp[0]<td>
<td>$uitzondering[0]<td>
<td>$score[0]<td> // deze er uit zeg maar..
<td>$score[1]<td>
<td>$score[2]<td>
<td>$score[3]<td>
<td>$score[4]<td>
Bedankt voor je reactie.
Heb je de aanpassing op regel 11 wel mee genomen :)?
Ja dat heb ik maar hij slaat hem dus niet over.
Vreemd want dat zou hij wel moeten doen
Ik begrijp dat als je die extra while loop toevoegd hij via het sommetje van $score_i < (($i+1)*5)) dus een waarde hoger moet springen?
Maar in feite zou hij dus van [0] niet naar weer [0] moeten gaan maar naar [1].
$score_i++; zou voor deze ophoging moeten zorgen maar dat laat hij achterwege. Wat gaat er fout?
Laat je volledige relevante script tnt eens zien
Zet dit bovenin je script.
SanThe schreef op 07.04.2008 16:38:
Krijg je geen errors?
Zet dit bovenin je script.
Zet dit bovenin je script.
Niet bumpen!
Zelf Weten ^_^
Bedankt voor jullie hulp!