$bar contains 4 (in this example, but potentially much more than 4) values I want to copy into $foo and $blah in this way:
$foo[0] = $bar[0];
$foo[1] = $bar[2];
$blah[0] = $bar[1];
$blah[1] = $bar[3];
So, the even rows of $bar will be copied into $foo[i], and the odd rows will be copied into $blah[i].
I tried with:
for($i=0; $i<2; $i++)
{
for($j=0; $j<4; $j++)
{
if($j % 2 == 0)
{
$foo[$i] = $bar[$j]; // EVEN
}
else
{
$blah[$i] = $bar[$j]; // ODD
}
}
}
However if I show the output of $foo and $blah, $foo[0] is equal to $foo[1], and $blah[0] is equal to $blah[1], while they should contain different values.
Example: Source:
$bar[0]: 27.8
$bar[1]: Napoli-Posillipo
$bar[2]: 29
$bar[3]: Stadio San Paolo di Napoli, Napoli
(wrong) result of the loop:
$foo[0] = 29 (it should be 27.8)
$foo[1] = 29
$blah[0] = Stadio San Paolo di Napoli, Napoli (it should be Napoli-Posillipo)
$blah[1] = Stadio San Paolo di Napoli, Napoli
Any hints? Thanks
you have made it to complex, something simple like this should work:
foreach ($bar as $k=>$v){
if($k % 2 == 0){
$foo[] = $v; // EVEN
}else{
$blah[] = $v; // ODD
}
}
what about sth like
foreach($bar as $key => $value) {
if($key % 2 == 0) {
//even
$foo[] = $value;
}
else {
// odd
$blah[] = $value;
}
}
You said it yourself:
"So, the even rows of $bar will be copied into $foo[i], and the odd rows will be copied into $blah[i]".
Cycle all $bar, and copy odd rows into $blah, even into $foo:
for ($i = 0; $i < 4; $i++)
if ($i % 2)
$blah[$i/2] = $bar[$i];
else
$foo[$i/2] = $foo[$i];
In the general case:
switch($i % N) // "N" for Napoli :-D
{
case 0: $VAR1[$i/N] = $bar[$i]; break;
case 1: $VAR2[$i/N] = $bar[$i]; break;
...
}