Bueno estás cometiendo varios fallos
Código PHP:
if (isset($_POST['empleados']))
{
$asignaturas = $_POST['empleados'];
foreach ($asignaturas as $value)
{
//Visualizamos los elementos del array
echo $value."<br>";
}
}
$separar = explode("|", $value);
$nombre = $separar[0];
$email = $separar[1];
$foto = $separar[2];
echo $separar[0];
echo $separar[2];
Con esto lo que estas haciendo es coger y visualizar solo el ultimo elemento seleccionado.
El foreach recorre todo el array asignaturas, visualizando su contenido. Cuando llega al ultimo elemento lo visualiza y termina el foreach.
Ahora value tiene el valor de la ultima posicion del array entiendes? Cuando el programa llega al explode lo que estas haciendo es hacer explode del valor del ultimo elemento del array asignatura.
Un ejemplo para que lo veas mas facil
el array esta asi
asignatura[0] = "pakito de los palotes |
[email protected] | imgs/pakito.jpg"
asignatura[1] = "pakita de los melones |
[email protected] | imgs/melon.jpg"
asignatura[2] = "juanito el canijo |
[email protected] | imgs/juanito.jpg"
se ejecuta nuestra codigo
y se visualiza
pakito de los palotes |
[email protected] | imgs/pakito.jpg
pakita de los melones |
[email protected] | imgs/melon.jpg
juanito el canijo |
[email protected] | imgs/juanito.jpg
ahora cuando llega a separar, y hace el explode . Despues de ejecutar los echos , en la web nos saldrá esto.
juanito el canijo imgs/juanito.jpg
Esto ocurre pq $value = al ultimo elemento del array asignatura ya que se ha recorrido por completo el array