Or, if you want to put the pairs in an array instead of displaying them immediately,
$str = 'This; Is; A; Test; Message.';
$chunks = array_chunk(explode(';', $str), 2);
foreach($chunks as &$chunk)
{
$chunk = join(';', $chunk);
}
unset($chunk);
// print_r($chunks);
With a callback (possibly an anonymous function), the foreach could be made into an array_map():
$chunks = array_map(function($chunk)
{
return join(';', $chunk);
}, $chunks);
It wouldn't necessarily be easier to read though, and it will run in exactly the same way; but you don't need to remember to unset the loop's index variable afterwards (a common gotcha).