error en php: Undefined offset

lydiatel
21 de Septiembre del 2009
Os envio mi codigo php para ver si me podeis ayudar a solucionar el error, cuando lo ejecuto en el navegador me sale tantos errores como elementos de array tengo y pone; undefined offset: 0, undefined offset: 1, undefined offset: 2!!!No se lo q hago mal.

<?
$tasa["Chelin"]="13,76";
$tasa["escudo"]="200,48";
$tasa["peseta"]="166,39";

$ntasa=count($tasa);
for($i=0;$i<$ntasa;$i++)
{
echo $tasa[$i];
next($tasa);
}
?>

Loop
21 de Septiembre del 2009
jajaja, por qué te manda el error ? :S

es simple........ estás contando los elementos de $tasa, no quiere decir que $i tenga como valor la matriz de $tasa, en todo caso si definieras $tasa[0] $tasa[1] $tasa[2] entoces podrías hacer lo que muestras en el ejemplo, otra manera de ..... sería

foreach ($tasa as $matriz => $valor){
echo $valor;
}

o hecho de otra manera

while(list($matriz, $valor) = each($tasa)){
echo $valor;
}

Eso dara como resultado el valor de cada elemento del array.


En cuanto al error es simple quiere decir que no encuentra el elemento $tasa[0] $tasa[1] como lo estabas haciendo ! :p

¡ Saludos ... !

otreblanc
21 de Septiembre del 2009
Hola!

Lo que pasa es que tu array $tasa es asociativo (los indices son palabras) y tu -for- accede a tu array $tasa de forma numerica (0,1,...)

Este codigo te corre perfecto (para tu matriz asociativa):
foreach($tasa as $valor) {
echo $valor."<br>"; //visualiza 13,76 200,48 ...
}

Tambien lo que vi es una instruccion -next($tasa);-, bueno pues ya no lo vas a necesitar.

Enjoy! xD

iris
21 de Septiembre del 2009
eso es porque ejecutas la matiz con indices numerico ($i) i tu la tienes declarada con indices associativos ("Chelin").
Prueva con:

<?
$tasa["Chelin"]="13,76";
$tasa["escudo"]="200,48";
$tasa["peseta"]="166,39";

foreach($tasa as $valor_tasa){
echo $valor_tasa."<br />";
}
?>

O con:

<?
$tasa["Chelin"]="13,76";
$tasa["escudo"]="200,48";
$tasa["peseta"]="166,39";

$indice=array_keys($tasa);

$ntasa=count($indice);

for($i=0;$i<$ntasa;$i++)
{
echo $tasa[$indice[$i]]."<br />";
}
?>