foreach facilita mucho el trabajo a la hora de recorrer una matriz.
Te pongo un ejemplo comparando con un bucle for() por ejemplo:
Código PHP:
<?php
//tenemos un array
$array = array("pedro", "jose", "luis");
//lo mostramos todo con for();
for($a = 0; $a < count($array); $a++)
echo $array[$a].'<br>';
echo '<hr>';
//hacemos lo mismo con foreach();
foreach($array as $nombre)
echo $nombre.'<br>';
/* ###############################3 */
//otro ejemplo con foreach();
$array2 = array("pedro" => "alto", "jose" => "bajo", "luis" => "feo");
foreach($array2 as $nombre => $adjetivo)
echo $nombre.' es '.$adjetivo.'<br>';
?>