Título: [Resuelto] Array en php Publicado por: codX en 19 Septiembre 2019, 01:11 am Hola gente del foro. Estamos trabajando con php en la facu. Me dieron el siguiente ejercicio que la verdad no entiendo. Alguien me da una mano? Gracias.
19. Mostrar todos los elementos del siguiente arreglo por medio de la estructura for array("valor1", 1234, array("cero", "uno", "dos", "tres")) Título: Re: Array en php Publicado por: EdePC en 19 Septiembre 2019, 01:58 am Saludos,
- Que parte no entiendes? - Puedes ir revisando: https://www.php.net/manual/es/function.array.php https://www.php.net/manual/es/function.count.php https://www.php.net/manual/es/control-structures.for.php Título: Re: Array en php Publicado por: codX en 19 Septiembre 2019, 02:09 am para mi el array está mal definido
array("valor1", 1234, array("cero", "uno", "dos", "tres")) como puede ser? Título: Re: Array en php Publicado por: EdePC en 19 Septiembre 2019, 03:00 am - Nop, un Array puede contener elementos de cualquier tipo, incluyendo otro Array: https://www.php.net/manual/es/language.types.array.php (aunque la mayoría de los ejemplos están hechos con Arrays asociativos)
- Solo tienes que recorrer el Array con las instrucciones que te permite el ejercicio, por ejemplo para iterar: foreach o for, para contar la cantidad de elementos del array: count(), para detectar si es un array o no: cout() o is_array(), etc. Título: Re: Array en php Publicado por: codX en 19 Septiembre 2019, 03:14 am Gracias EdePC , vos como recorrerías ese array, mirá es la segunda clase de php, me parece que es mucho no se. Programo en C hace rato, pero eso nunca lo hice al menos en ese lenguaje. Por lo que entiendo no es una matriz, es como si fuesen arrays anidados? Gracias por el manual!!
Título: Re: Array en php Publicado por: engel lex en 19 Septiembre 2019, 03:32 am lo que entiendo no es una matriz, es como si fuesen arrays anidados? literalmente eso es una matriz (hablando en informatica mas que en matemática) es un elemento de tipo vector que contiene elementos de tipo vector... Título: Re: Array en php Publicado por: EdePC en 19 Septiembre 2019, 03:40 am - Como dije, dependerá del juego de instrucciones que te permita o exija utilizar el ejercicio, suponiendo que te exige utilizar for, count e if:
Código
Citar $array[0] => valor1 $array[1] => 1234 $array[2][0] => cero $array[2][1] => uno $array[2][2] => dos $array[2][3] => tres - Lo recomendable es siempre leerse un tutorial o curso o vídeos de introducción para mas o menos ver las capacidades del lenguaje y al menos tener en mente que juego de instrucciones utilizar para resolver un problema, yo recomendaría esta guía rápida de 218 págs. en español: https://openlibra.com/es/book/programador-php-tomo-1 -- Luego siempre tener a mano la referencia completa del lenguaje, ya sea OnLine: https://www.php.net/manual/es/ u OffLine: https://www.php.net/distributions/manual/php_enhanced_es.chm Título: Re: Array en php Publicado por: codX en 19 Septiembre 2019, 03:56 am mmm EdePC vengo de C, en mi muno una matriz es tan diferente!! Igual el enunciado decía utilizar for.Muchas gracias. Lo voy a mirar una rato largo. Gracias por tu tiempo. Un abrazo!
Título: Re: Array en php Publicado por: #!drvy en 19 Septiembre 2019, 11:18 am Ojo con el código de @EdePC ya que hay un par de cosas que no se aconsejan o directamente están mal en PHP 7.2+.
Lo que esta mal (en versiones de PHP 7.2+) es que se está utilizado count sobre objetos que pueden no ser contables. A partir de 7.2, count lanzará un Warning si el parámetro no implementa Countable. Además count puede ser muy confuso pues count('abc') además de lanzar un warning, devuelve true en forma de integro (1). Por tanto, ese código tiene un comportamiento indeseado. Por ejemplo, si $array resulta ser un string: Código
Código: t => t https://www.php.net/manual/es/migration72.incompatible.php El segundo problema es un más bien una practica desaconsejada. Meter count en el propio for como comparador, implica que cada vez que haga un ciclo, la función se volverá a ejecutar y por lo tanto, volverá a calcular el tamaño del array con el procesamiento que ello conlleva. Consideramos esto por ejemplo: Código
Resultado: Código: conteo valor1 conteo valor2 conteo valor3 conteo valor4 conteo Si el array no varia durante el proceso o no hace falta volver a calcular su tamaño en cada ciclo, es mejor hacer el conteo previamente. Código
Código: conteo valor1valor2valor3valor4 Lo que te dan en problema que se te presenta, se llama array multidimensional mixto. PHP no es fuertemente tipado por lo tanto una matriz (array) puede contener cualquier cosa dentro de ella incluidas otras matrices (multidimensional) y valores de diferentes tipos (mixto). https://www.w3schools.com/php/php_arrays_multi.asp https://www.guru99.com/arrays.html Si es obligatorio que uses for (tal y como sugiere el ejercicio) puedes hacerlo como ha mostrado @EdePC. Código
Esto será válido solo para un array de 2 dimensiones. Puedes crear una función y hacerla recursiva para recorrer arrays de multiples dimensiones: Código
Cabe destacar que PHP ya implementa funciones muy útiles para iterar arrays. Por ejemplo, en tu caso array_walk_recursive te viene al pelo. Código
o de forma más compacta con funciones anónimas: Código
https://www.php.net/manual/es/function.array-walk-recursive.php https://www.php.net/manual/es/functions.anonymous.php Saludos |