Bueno pues despues de romperme la cabeza, por lo menos acoto un poco el problema.
En lugar de hacer
$row['Nombre'];
Lo he cambiado por $row['Precio'];
Y FUNCIONA!!
Teniendo en cuenta que Precio es decimal en la base de datos y Nombre es varchar, deduzco que es un problema de lo que devuelve la base de datos, algun tipo de problema para guardar los varchar en un array, o problema con los espacios de los nombres. A ver si ahora que esta claro donde esta el fallo podeis echarme una mano, porque en el tema de almacenar strings, arrays y ese tema estoy muy verde. Gracias.
Así queda el código después de todos los cambios:
Código PHP:
public function datos(){
$servidor="localhost";
$usuario="tienda";
$pass="tienda";
$basedatos="tienda";
$link = @mysql_connect($servidor, $usuario, $pass);
if (!$link) {
die ("No se puede conectar");
}
$db = mysql_select_db($basedatos, $link);
if (!$db) {
die ("No se puede conectar");
}
$result = mysql_query("SELECT * FROM Articulo");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$nombre=$row['Precio'];
$id++;
$arrayid[$id]=$nombre;
}
return $arrayid;
}