Array : hoe haal je een deel er uit?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Martijn Roverts

Martijn Roverts

07/04/2008 10:49:00
Quote Anchor link
Ik heb de volgende 3 array’s die ik graag in een tabel zou willen zetten....

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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..);


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)
PHP script in nieuw venster Selecteer het PHP script
1
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.


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?
 
PHP hulp

PHP hulp

05/11/2024 12:03:44
 
Jacco Engel

Jacco Engel

07/04/2008 11:23:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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++ ;
}

?>


Ongeveer zo. Stylen doe je maar lekker zelf
Gewijzigd op 01/01/1970 01:00:00 door Jacco Engel
 
Martijn Roverts

Martijn Roverts

07/04/2008 13:57:00
Quote Anchor link
Bedankt voor je bericht
Achter $i = 0 nog ff een punt komma ;)

Hij loopt nu als volgt :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<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....


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
 
Jacco Engel

Jacco Engel

07/04/2008 13:59:00
Quote Anchor link
Heb 2 aanpassingen gedaan (zie vorige script)

Zou nu beter moeten zijn
 
Martijn Roverts

Martijn Roverts

07/04/2008 14:17:00
Quote Anchor link
Hej dat werkt inderdaad top zo!

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)
PHP script in nieuw venster Selecteer het PHP script
1
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>


Bedankt voor je reactie.
 
Jacco Engel

Jacco Engel

07/04/2008 14:20:00
Quote Anchor link
Heb je de aanpassing op regel 11 wel mee genomen :)?
 
Martijn Roverts

Martijn Roverts

07/04/2008 14:28:00
Quote Anchor link
Ja dat heb ik maar hij slaat hem dus niet over.
 
Jacco Engel

Jacco Engel

07/04/2008 14:32:00
Quote Anchor link
Vreemd want dat zou hij wel moeten doen
 
Martijn Roverts

Martijn Roverts

07/04/2008 16:31:00
Quote Anchor link
Maar hoe zou je zoiets verder kunnen laten springen dan?

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?
 
Jacco Engel

Jacco Engel

07/04/2008 16:36:00
Quote Anchor link
Laat je volledige relevante script tnt eens zien
 
- SanThe -

- SanThe -

07/04/2008 16:38:00
Quote Anchor link
Krijg je geen errors?

Zet dit bovenin je script.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

// rest
?>
 
Zelf Weten

Zelf Weten

07/04/2008 18:06:00
Quote Anchor link
SanThe schreef op 07.04.2008 16:38:
Krijg je geen errors?

Zet dit bovenin je script.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

// rest
?>


Niet bumpen!

Zelf Weten ^_^
 
Martijn Roverts

Martijn Roverts

07/04/2008 18:08:00
Quote Anchor link
Ik heb hem! Er zat een foutje in.

Bedankt voor jullie hulp!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.