Estoy trabajando en un archivo PHP.

Hay una matriz de cadenas que recibo a través de POST:

$str = (45,42,12,);

Primero elimino la última coma:

$str = substr($string_temas,0,-1);

Llego entonces

$str = (45,42,12);

Para comprobarlo, me hice eco:

echo "str value=".$str;

Y obtengo como resultado eco:

Valor str = 45,42,12

Luego trato de hacer un bucle para cada elemento, así:

foreach ($str as $value) {

        }

Pero estoy recibiendo un error:

Argumento no válido proporcionado para foreach () en ..... línea (foreach ($str as $value) {

¿Qué estoy haciendo mal?

php
0
mvasco 10 sep. 2018 a las 12:28

4 respuestas

La mejor respuesta

Si su cadena final es 45,42,12 , puede usar explotar función de PHP

$finalArray = explode(",",$str);

foreach ($finalArray as $value) {

}
6
Bhavin Solanki 10 sep. 2018 a las 09:36

Antes de realizar un bucle, debe tener una matriz. Probablemente desee explotar la cadena:

$array = explode(',', $str);
foreach ($array as $value) {
 // code here...
}
1
Milan Chheda 10 sep. 2018 a las 09:32

Porque bucle variable de cadena. Para convertir una cadena en una matriz, puede usar la función de explosión.

foreach (explode(",", $str) as $value) {
    ...
}

http://php.net/manual/en/function.explode.php https://www.w3schools.com/php/func_string_explode.asp

1
Josep Widtantio 10 sep. 2018 a las 09:33

Solo recibirá una cadena de datos de solicitud, no una matriz. Use explotar para dividir datos separados por comas en una matriz

$arr=explode(',',$str);

Entonces puedes recorrer esto.

1
whitelined 10 sep. 2018 a las 09:34