Do not understand why in my final result Shifts-5 is repeating again and again whereas in my array he is here just one time...
Thanks for help.
<?php
$firstArray = array("Leaves-19", "Shifts-5", "Shifts-1", "Shifts-1", "Shifts-1", "Shifts-1", "Leaves-19", "Leaves-19", "Shifts-1", "Shifts-1", "Shifts-1", "Shifts-1", "Shifts-1", "Leaves-19", "Leaves-19", "Shifts-1", "Shifts-1", "Shifts-1", "Shifts-1", "Shifts-1", "Leaves-19", "Leaves-19", "Shifts-1", "Shifts-1", "Shifts-1", "Shifts-1", "Shifts-1", "Leaves-19", "Leaves-19", "Shifts-1", "Shifts-1", "Shifts-1", "Shifts-1", "Shifts-1", "Leaves-19", "Leaves-19", "Shifts-1", "Shifts-1", "Shifts-1", "Shifts-1", "Shifts-1", "Leaves-19");
$secondArray = array("2013-04-28", "2013-04-29", "2013-04-30", "2013-05-01", "2013-05-02", "2013-05-03", "2013-05-04");
$thirdArray = array("13", "10", "12", "9", "14", "11");
$datesCount = count( $secondArray );
$firstArrayLength = count( $firstArray );
$thirdArrayLength = count( $thirdArray );
for( $i=0 ; $i < $thirdArrayLength ; $i++ )
{
$currentThirdArrayValue = $thirdArray[$i];
for( $inner=0, $firstArrayIndex=0 ; $inner < $datesCount ; $inner++, $firstArrayIndex++ )
{
if( $firstArrayIndex == $firstArrayLength )
$firstArrayIndex = 0;
echo "{$secondArray[$inner]} / {$currentThirdArrayValue} / {$firstArray[$firstArrayIndex]}<br/>
";
}
}
?>
It's because you keep resetting the pointer inside the first array at every iteration of the third array:
$firstArrayIndex=0;
Move this assignment outside of the outer for
loop.
It can be done without all the counters, like this:
$secondArray = array("2013-04-28", "2013-04-29", "2013-04-30", "2013-05-01", "2013-05-02", "2013-05-03", "2013-05-04");
$thirdArray = array("13", "10", "12", "9", "14", "11");
$secondArrayLength = count($secondArray);
foreach($thirdArray as $third_i => $third_value)
{
foreach($secondArray as $sec_i => $sec_value)
{
$first_value = $firstArray[($third_i * $secondArrayLength) + $sec_i];
echo "$sec_value / $third_value / $first_value<br/>" ;
}
}