İlk soru;
foreach($items as $key=>$value) {
   echo $key.'=>'.$value;
   echo '<br>'; // bu satır her kayıtta alt satıra geçmek için.
}
İkinci soru;
Regex ile yapabilirsin ya da "SELECT * FROM `tablo` where text like '%a%' and (text not like 'a%' and text not like '%a')" gibi bir sorguyla yaptırabilirsin. Dediğin gibi başında veya sonunda a olmayan ama içinde olan kayıtları getirir. Ama regex ile performans daha yüksek olabilir, bakmak lazım.