Saltar al contenido

Cómo resolver el error de PHP ‘Aviso: Array to string conversión en…’

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 printentonces 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];

Valoraciones y reseñas

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Respuestas a preguntas comunes sobre programacion y tecnología