El problema está en que cuando haces
array($row_prefesores['materias_profesor']), te crea un array de una posición con el valor que contenga $row_prefesores['materias_profesor'].
Esto es así, porque el valor de $row_prefesores['materias_profesor'] es un string, no es como cuando realizas
array(1,2,3,4).
Una forma sería usando explode y convirtiendo los valores a int:
Código PHP:
Ver originalfunction convertir($n)
{
return (int)$n;
}
$row_prefesores['materias_profesor'] = "1,2,3,4";
$arraymateria = array_map("convertir",explode(',',$row_prefesores['materias_profesor'])) ;
do {
if (in_array($row_materias['id_materias'], $arraymateria,true)) { $materia = "Si Existe";
}else{$materia = "No Existe";}
echo $materia;
Otra forma sería sin convertir los valores a int, usando la evaluación no estricta, pero es más recomendable la primera.
Ejemplo:
Código PHP:
Ver originalfunction convertir($n)
{
return (int)$n;
}
$row_prefesores['materias_profesor'] = "1,2,3,4";
$arraymateria = explode(',',$row_prefesores['materias_profesor']);
do {
if (in_array($row_materias['id_materias'], $arraymateria,false)) { $materia = "Si Existe";
}else{$materia = "No Existe";}
echo $materia;