Hola,
Con esto obtienes lo que quieres.
Pero, deberias repensar tu lógica, posiblemente hay una mejor forma de hacer lo que quieres.
Código PHP:
$a=array(5,6,7,8);
$b=array(1,2,3,4);
$c=array(1,2,1,2);
foreach($c as $key => $value){
$result_a[$value][]=$a[$key];
$result_b[$value][]=$b[$key];
}
$result_a1=implode('|',$result_a[1]);
$result_b1=implode('|',$result_b[1]);
$result_a2=implode('|',$result_a[2]);
$result_b2=implode('|',$result_b[2]);
var_dump($result_a1);
var_dump($result_b1);
var_dump($result_a2);
var_dump($result_b2);
Saludos