When you create your array, you don't specify keys, so they are generated automaticaly. So you can work on keys for your for loop instead of using a foreach in values:
We can see in your code that $array3 is longuer than the others. So we will base on it:
foreach($array3 as $key => $value)
{
if (isset($array1[$key])){
echo '<tr><td>'.$array1[$key].'</td>';
}else{
echo '<tr><td></td>';
}
if (isset($array2[$key])){
echo '<td>'.$array2[$key].'</td>';
}else{
echo '<td></td>';
}
echo '<td>'.$array3[$key].'</td></tr>';
}
It should work