El problema es porque la función esta buscando en el primer nivel, necesitas recorrer el arreglo y buscar el elemento que quieres. eso lo puedes hacer de forma secilla con array_filter
Código PHP:
Ver original array("Juan","Fisica","Contabilidad"), array("Antonio","Informatica","Contabilidad"), array("Luis","Fisica","Matematicas","Lengua") );
$buscar = "antonio";
$result = array_filter($academia, function($item) use($buscar){ });
Eso si, recuerda que este es el caso mas sencillo tendrias que contemplar otras cosas para hacer busquedas mas complejas.