Nuestro equipo de expertos pasados algunos días de trabajo y recopilar de información, obtuvieron la solución, queremos que todo este artículo sea de utilidad para tu proyecto.
Solución:
Cuando tiene muchas entradas HTML nombradas C[]
lo que obtienes en el POST array en el otro extremo hay un array de estos valores en $_POST['C']
. Entonces cuando tu echo
eso, usted está tratando de imprimir un arrayasí que todo lo que hace es imprimir Array
y un aviso.
Para imprimir correctamente un arrayo lo recorres y echo
cada elemento, o puede usar print_r
.
Alternativamente, si no sabe si es un array o un string o lo que sea, puedes usar var_dump($var)
que le dirá de qué tipo es y cuál es su contenido. Úselo solo con fines de depuración.
Qué significa el Aviso de PHP y cómo reproducirlo:
Si envías un PHP array en una función que espera un string me gusta: echo
o print
entonces el intérprete de PHP convertirá su array al literal string Array
, tira este Aviso y sigue adelante. Por ejemplo:
php> print(array(1,2,3))
PHP Notice: Array to string conversion in
/usr/local/lib/python2.7/dist-packages/phpsh/phpsh.php(591) :
eval()'d code on line 1
Array
En este caso, la función print
vuelca el literal string: Array
a stdout y luego registra el Aviso en stderr y continúa.
Otro ejemplo en un script PHP:
Corrección 1: use el bucle foreach para acceder array elementos
http://php.net/foreach
$stuff = array(1,2,3);
foreach ($stuff as $value)
echo $value, "n";
Huellas dactilares:
1
2
3
o junto con array keys
$stuff = array('name' => 'Joe', 'email' => '[email protected]');
foreach ($stuff as $key => $value)
echo "$key: $valuen";
Huellas dactilares:
name: Joe
email: [email protected]
Tenga en cuenta que array los elementos también podrían ser arreglos. En este caso, utilice foreach
de nuevo o acceda a este interior array elementos usando array sintaxis, por ejemplo $row['name']
Corrección 2: Uniendo todas las celdas en el array juntos:
En caso de que sea solo un simple 1-dimensional arraysimplemente puede unir todas las celdas en una string usando un delimitador:
Corrección 3: Stringifica un array con estructura compleja:
en caso de que su array tiene una estructura compleja, pero es necesario convertirlo en un string de todos modos, luego use http://php.net/json_encode
$stuff = array('name' => 'Joe', 'email' => '[email protected]');
print json_encode($stuff);
Huellas dactilares
"name":"Joe","email":"[email protected]"
Un vistazo rápido a array estructura: use las funciones php integradas
Si solo desea inspeccionar el array contenido con fines de depuración, utilice una de las siguientes funciones. Tenga en cuenta que var_dump es el más informativo de ellos y, por lo tanto, generalmente se prefiere para el propósito.
- http://php.net/print_r
- http://php.net/var_dump
- http://php.net/var_export
ejemplos
$stuff = array(1,2,3);
print_r($stuff);
$stuff = array(3,4,5);
var_dump($stuff);
Huellas dactilares:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
array(3)
[0]=>
int(3)
[1]=>
int(4)
[2]=>
int(5)
Tu estas usando en su HTML. Esto crea un array en PHP cuando se envía el formulario.
Tu estas usando echo $_POST['C'];
hacer eco de eso array - esto no funcionará, sino que emitirá ese aviso y la palabra "Array".
Dependiendo de lo que haya hecho con el resto del código, probablemente debería usar echo $_POST['C'][0];