Foros del Web » Programando para Internet » PHP »

Problema con arrays

Estas en el tema de Problema con arrays en el foro de PHP en Foros del Web. Hola. Estoy teniendo un problema trabajando con arrays, y no puedo encontrarle la vuelta. Desde un formulario, envío varios juegos de arrays que los recibo ...
  #1 (permalink)  
Antiguo 05/11/2012, 07:44
Avatar de fakulicious  
Fecha de Ingreso: mayo-2008
Ubicación: Mendoza
Mensajes: 140
Antigüedad: 15 años, 11 meses
Puntos: 2
Pregunta Problema con arrays

Hola. Estoy teniendo un problema trabajando con arrays, y no puedo encontrarle la vuelta.

Desde un formulario, envío varios juegos de arrays que los recibo por $_POST, pero cuando quiero recorrerlos, recibo este error: Notice: Uninitialized string offset: 1 in D:\Trabajos\Anzorena\admin\prueba.php on line 24

Y ese mismo error se repite muchas veces, una por cada array, y una por cada iteración.

Mi código es:
Código PHP:
<?php
$id 
$_POST['id'];
$jugador $_POST['jugador'];
$min $_POST['min'];
$tc_ei $_POST['tc_ei'];
$tc_pc $_POST['tc_pc'];
$tp_ei $_POST['tp_ei'];
$tp_pc $_POST['tp_pc'];
$tl_ei $_POST['tl_ei'];
$tl_pc $_POST['tl_pc'];
$rb_of $_POST['rb_of'];
$rb_def $_POST['rb_def'];
$rb_tot $_POST['rb_tot'];
$as $_POST['as'];
$pb $_POST['pb'];
$rb $_POST['rb'];
$bq_bc $_POST['bq_bc'];
$bq_bi $_POST['bq_bi'];
$ft_fc $_POST['ft_fc'];
$ft_fr $_POST['ft_fr'];
$pts $_POST['pts'];

foreach(
$id as $clave => $valor){
    
$id $id[$clave];
    
$jugador $jugador[$clave];
    
$min $min[$clave];
    
$tc_ei $tc_ei[$clave];
    
$tc_pc $tc_pc[$clave];
    
$tp_ei $tp_ei[$clave];
    
$tp_pc $tp_pc[$clave];
    
$tl_ei $tl_ei[$clave];
    
$tl_pc $tl_pc[$clave];
    
$rb_of $rb_of[$clave];
    
$rb_def $rb_def[$clave];
    
$rb_tot $rb_tot[$clave];
    
$as $as[$clave];
    
$pb $pb[$clave];
    
$rb $rb[$clave];
    
$bq_bc $bq_bc[$clave];
    
$bq_bi $bq_bi[$clave];
    
$ft_fc $ft_fc[$clave];
    
$ft_fr $ft_fr[$clave];
    
$pts $pts[$clave];
    echo 
$clave.' - '.$valor.' - '.$jugador.' - '.$min.' - '.$tc_ei.' - '.$tc_pc.' - '.$tp_ei.' - '.$tp_pc.' - '.$tl_ei.' - '.$tl_pc.' - '.$rb_of.' - '.$rb_def.' - '.$rb_tot.' - '.$as.' - '.$pb.' - '.$rb.' - '.$bq_bc.' - '.$bq_bi.' - '.$ft_fc.' - '.$ft_fr.' - '.$pts.'</br>';
}
?>
Solo funciona cuando $clave es igual a 0, pero cuando $clave ya es 1, 2, 3 o hasta 15, me devuelve ese NOTICE.

¿Qué es lo que estoy haciendo mal o no estoy viendo?

Espero que me puedan ayudar, muchas gracias!

Saludos!
__________________
Facundo
http://www.creactivo.com.ar
  #2 (permalink)  
Antiguo 05/11/2012, 08:11
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 1 mes
Puntos: 47
Respuesta: Problema con arrays

En principio o hasta donde se por medio de un formulario solo puedes enviar cadenas o numeros sin importar que el valor del formulario sea un array javascript por ende el error que te esta dando debe ser algo asi como que no se puede recorrer una cadena:

En segundo lugar si mal no recuerdo la sintaxis del foreach es:

foreach($array as $alias => $key) donde alias es el nuevo nombre que toma el array y key un parametro opcional con un indice para recorrer el array.

por ende para guardar un valor seria $alias[$key] y tu estas colocando algo asi como $array[$alias].

Si tienes alguna otra duda me avisas.

Salu2
  #3 (permalink)  
Antiguo 05/11/2012, 08:39
 
Fecha de Ingreso: abril-2009
Ubicación: en un lugar de la mancha
Mensajes: 236
Antigüedad: 15 años
Puntos: 38
Respuesta: Problema con arrays

Hola el foreach esta bien escrito, es

foreach($array as $key => $valor)

Asi como lo tiene fakulicious esta bien escrito.

El error ke te esta devolviendo es ke una de tus variables no es array o tiene valor nulo, por eso te devuelve porke tu los estas recorriendo como array con una llave ejemplo

Código PHP:
$jugador $jugador[$clave]; 

// si jugador es 
$jugador 'Player_1';
// te dara error porke no es un array.

// tabien este caso
$jugador NULL
Todo porke estas tratando de accedes depsues a $jugador[$clave], y no existe, o sea chequea el valor que estas enviando.

Código PHP:

// esto te ayudara a ver los valores ke estas recibiendo de tu formulario por el metodo post

echo '<pre>';
print_r($_POST);
echo 
'</pre>'
espero te ayude
buena suerte

Etiquetas: arrays, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:44.