[PHP] For-lus random integers in array opslaan

Moderators: jkien, Xilvo

Reageer
Berichten: 41

[PHP] For-lus random integers in array opslaan

Goedemiddag,

Ik probeer een tabel te maken met randomized nummers, dit doe ik door middel van een for-lus die ik gemaakt heb:

for($i = 1; $i < 7; $i++) {

$row[0] = rand(10, 19);

echo '<td>' . $row[0];
}

Ik vraag me alleen of of het mogelijk is om alle nummers uit een rij te kunnen opslaan in een nieuwe array, en hoe dit precies moet. Op de PHP manual kom ik er niet uit en vind ik ook niet echt een functie die in de buurt komt ervoor (waarschijnlijk kijk ik niet goed genoeg :? ).
Wanneer ik nu een extra variabele/array toevoeg om de waarde(s) van $row in op te slaan en deze print, komt alleen het laatste getal uit de betreffende for-lus in de variabele/array te staan.

Is er een mogelijkheid om voor elke iteratie van de lus het desbetreffende getal op te slaan?

Bij voorbaat dank!


p.s. $row is een array omdat deze vaker in mijn code voorkomt met verschillende waarde.

Berichten: 463

Re: [PHP] For-lus random integers in array opslaan

Ik ben geen PHP programmeur, maar het lijkt er op dat je alleen $row[0] in je code een (random) waarde toekent.
Als je array met index 0 begint, dan zou ik zoiets verwachten:

for($i = 0; $i < 6; $i++) {
$row[$i] = rand(10, 19);
echo '<td>' . $row[$i];
}

Lost dit je probleem op?

Berichten: 41

Re: [PHP] For-lus random integers in array opslaan

Nee, dan wordt alleen de waarde $i = 6 bijgehouden.
Dat is de waarde uit de for-lus zelf.

Ik wil echt de willekeurige waarden uit $row[0] = rand(10, 19);

Er worden in deze lus in totaal 6 willekeurige getallen tussen 9 - 20 getrokken, en al die losse getallen wil ik kunnen opslaan in een losse array.

Hartstikke bedankt dat je je even over het probleem hebt gebogen!

Berichten: 12.262

Re: [PHP] For-lus random integers in array opslaan

Door dit te doen overschijf je telkens de waarde van $row[0], en houd je daarna $row als array over met 1 element met index 0 en een random waarde. Dat lijkt me nogal onlogisch, wat RedCat laat zien levert een array op met 6 elementen (indices 0 tot 5) met elk een waarde tussen 10 en 19 - ik neem aan dat je dat wilt?

Berichten: 41

Re: [PHP] For-lus random integers in array opslaan

Ik heb de code geprobeerd, maar dit geeft niet de waardes die in de tabel staan:

<?php
for($i = 0; $i < 6; $i++) {
$row[$i] = rand(10, 19);
echo '<td>' . $row[$i];
}
?>
</table>
<?php
var_dump($row[$i]);
?>

De output hiervan is:

14 15 14 15 18 14

Notice: Undefined offset: 6 on line 13
NULL

Mis ik daadwerkelijk iets?

Berichten: 463

Re: [PHP] For-lus random integers in array opslaan

var_dump($row[$i]);
Hier gaat het mis.
$i is na het beeindigen van de for() lus 6, en $row[6] is niet gedefinieerd (alleen $row[0] t/m $row[5] bestaan).

Werkt het door deze regel te vervangen door
var_dump($row);
of
var_dump($row[]);
of iets dergelijks?

Berichten: 463

Re: [PHP] For-lus random integers in array opslaan

Edit:
Of anders opnieuw een lus toevoegen:

for($i = 0; $i < 6; $i++) {
var_dump($row[$i]);
}

Berichten: 12.262

Re: [PHP] For-lus random integers in array opslaan

Nah, var_dump($row); of print_r($row); zou het gewoon moeten doen.

Berichten: 41

Re: [PHP] For-lus random integers in array opslaan

Hartstikke bedankt, het is me mede dankzij jullie gelukt!

Door een extra multidimensionale array toe te voegen die bij elke iteratie van de verschillende lussen de integers opslaat, ik gebruik de betreffende lus meerdere keren om in totaal een tabel van 6 x 6 te maken met hierin verschillende waarden.

for($j = 1; $j < 7; $j++) {

$row[$j][0] = rand(10, 19);

echo '<td>' . $row[$j][0];

}
$getrokkenGetallen = array(0 =>
array(00 => $row));

Wanneer ik na de verschillende lussen $getrokkenGetallen echo, komen alle random integers tevoorschijn zoals gewenst.

Mocht ik hier ergens de fout zijn ingegaan of is er een methode om dit beter te doen, hoor ik dat graag! :)

Mijn doel hiermee is een bingo spel maken, dus ik wil alle waarden uit elke rij van de verschillende kolommen kunnen opslaan om later te controleren tegen een aantal getrokken getallen.

Ik hoop dat ik het een beetje duidelijk geformuleerd heb op deze manier!

Nogmaals, mijn dank is groot. Mijn doel is bereikt, ik vind het alleen fijn om extra kritiek te ontvangen over eventuele aandachtspunten in deze syntaxis.

Berichten: 463

Re: [PHP] For-lus random integers in array opslaan

Je 6x6 array $getrokkenGetallen kan je ook direct vullen:

Code: Selecteer alles

for($i = 1; $i < 7; $i++) {
    for($j = 1; $j < 7; $j++) {
        $getrokkenGetallen[$i][$j] = rand(10, 19);
        }
    }
Voor elke rij $i ga je met $j alle kolommen af, en geef je het array element $getrokkenGetallen[$i][$j] een random waarde via rand(10, 19).

Wil je voor je Bingo spel je array $getrokkenGetallen overigens niet vullen met allemaal VERSCHILLENDE waarden?

Reageer