Hoi,

Ik probeer waarschijnlijk iets onmogelijks, maar misschien kan het toch. Ik wil een array maken met de volgende structuur:

<?php
	$array = ['item1' => [1, 3, 6], 'item2' => [18, 25,31]];
?>

Er zitten veel meer items in, maar goed.

Via de bovenstaande code lukt het prima. Maar nu wil ik het met een loop doen, iets als dit:

<?php
	$array = ['item1', 'item2', 'item3'];
	$array3 = array();
	foreach ($array as $sleutel){
		$array2 = array();
		for ($i = 0, $i < 3, $i++){
			$array2[]= $i*2;
		}
		$array3[$sleutel] = $array2;
	}
?>

Ik zou een array verwachten met de volgende structuur na print_r($array3):
Array ( [item1] => Array ( [0] => 0 [1] => 2 [2] => 4 ) [item2] => Array ( [0] => 0 [1] => 2 [2] => 4 ) [item3] => Array ( [0] => 0 [1] => 2 [2] => 4 ))

Nu doet het volgende zich voor: bij elke ronde blijkt $array3 te worden overschreven. En krijg ik:
Array ( [item3] => Array ( [0] => 0 [1] => 2 [2] => 4 ))


Hoe zou ik het wel moeten doen?
Niet getest.
<?php
$array = array('item1' => array(1, 3, 6), 'item2' => array(18, 25, 31));
?>
<?php
$array = array('item1', 'item2', 'item3');
$array3 = array();
foreach ($array as $sleutel){
$array2 = array();
for ($i = 0, $i < 3, $i++){
$array2[]= $i*2;
}
$array3[$sleutel] = $array2;
}
?>
dat lijkt erg op mijn eigen code ... waar zit het verschil?
$array = array('item1', 'item2', 'item3');
ipv.
$array = ['item1', 'item2', 'item3'];
volgens mijn documentatie is beiden goed ... ik geloof ook niet dat dat het probleem is ...
Werkt dat van mij ook niet?
Nee, net getest: Parse error: syntax error, unexpected ')', expecting ';' in /test2.php on line 6

Maar dat zal wel een ander probleem zijn ;)
J opla op 14/01/2020 23:54:18

Nee, net getest: Parse error: syntax error, unexpected ')', expecting ';' in /test2.php on line 6

Maar dat zal wel een ander probleem zijn ;)

for ($i = 0, $i < 3, $i++){

Hier horen geen komma's te staan maar in plaats daarvan ;
dat waren inderdaad de "," die ";" hadden moeten zijn in de "for" loop

[size=xsmall]Toevoeging op 15/01/2020 00:03:09:[/size]

Ik krijg hier wel de goede array nu uit, dus het principe werkt wel ... nu kijken naar wat er i het script fout gaat.
Kwam ik eindelijk ook achter.
, => ;
Keek er steeds overheen.
Ah, gevonden, ik had in mijn oorspronkelijke script de declaratie van array3 na de foreach staan, dan wordt het natuurlijk steeds overschreven.

Reageren