Question:
Date: 16-05-2017 04:31:52
(In Spanish)
como podría validar los valores de un mismo array... es decir por ejemplo:
pero la cosa es que tengo $miarray[n]... y no se como hacerlo con n posiciones....
alguien tiene un link o algo que me pueda ayudar? gracias Votes: 0 - Answers: 6 - Views: 15 Share on: Google Facebook Twitter LinkedIn Link
Validar posiciones de un array $miarray[n][Resolved]
Hola a todos, alguien me podría ayudar con esta duda...como podría validar los valores de un mismo array... es decir por ejemplo:
if ($miarray[0] < $miarray[1]) { //$miarray[0] toma el valor de $miarray[1] } if ($miarray[2] > $miarray[3]) { //$miarray[3] toma el valor de $miarray[2] } etc....
pero la cosa es que tengo $miarray[n]... y no se como hacerlo con n posiciones....
alguien tiene un link o algo que me pueda ayudar? gracias Votes: 0 - Answers: 6 - Views: 15 Share on: Google Facebook Twitter LinkedIn Link
Answers:
-
Date: 16-05-2017 05:08:02 Buen día lo que ocupas es hacer un for por ejemplo
// con este for lo que haces es inicializar a $ i en 0 el ciclo recorre todo el array y va incrementado la $i //en uno for($i=0;$i<Count($miarray);$i++){ if($miarray[$i]<$miarray[$i+1]){ // hace algo } }
solo es cosa de que analices las condiciones del for y el if y las adaptes a tus necesidades por ejemplo si es necesario que el incremeno sea en 2 etc. espero la respuesta te ayude o si tienes mas dudas exponlas para ver que podemos hacer. Votes: 0 - Link answer -
Date: 16-05-2017 05:48:10 Gracias por responder, lo estoy haciendo con for... nada mas que lo hice con 2 for para ver como em resultaba..
for ($a=0; $a < count($miarray) ; $a++) { for ($b=0; $b < count($miarray); $b++) { if($miarray[$a] > $miarray[$b]) { $miarray[$b] = $miarray[$a]; } else { $miarray[$a] = $miarray[$b]; } } }
en cierta parte con estos 2 for me escoge el mas alto y lo cambia... pero pone el valor mayor en todos los $miarray[]... y lo que necesito es que solo ponga el valor mayor entre $miarray[0] y $miarray[1], despues que verifique el mayor entre $miarray[2] y $miarray[3], y así sucesivamente...
Votes: 0 - Link answer -
Date: 16-05-2017 07:01:39 Creo que lo que necesitas es algo así:
$arrayOriginal = array(1,5,3,8,0,7,8,11,67,32); $arrayAux = array(1,5,3,8,0,7,8,11,67,32); print_array($arrayOriginal);print_array($arrayAux); print_array(COUNT($arrayAux)); $i=0; $z=0; while($z<COUNT($arrayOriginal)){ $i = $z; if($arrayAux[$i]>$arrayAux[$i+1]){ $arrayAux[$i+1] = $arrayAux[$i]; }else{ $arrayAux[$i] = $arrayAux[$i+1]; } $z=$z+2; } print_array($arrayOriginal); print_array($arrayAux);
Y me arroja losiguiente:
Array original:
Array ( [0] => 1 [1] => 5 [2] => 3 [3] => 8 [4] => 0 [5] => 7 [6] => 8 [7] => 11 [8] => 67 [9] => 32 )
Array modificado:
Array ( [0] => 5 [1] => 5 [2] => 8 [3] => 8 [4] => 7 [5] => 7 [6] => 11 [7] => 11 [8] => 67 [9] => 67 )
Si lo que buscas es ordenar sugiero leas los metodos de ordenación. Votes: 3 - Link answer -
Date: 16-05-2017 08:48:12 Estas tratando de ordenar los valores? No uses ese algoritmo.
Si es para una tarea y tienes que demostrar el Bubble/Sink Sort entonces necesitas una variable auxiliar porque en tu codigo estas sobreescribiendo uno de los valores. Votes: 1 - Link answer -
Date: 16-05-2017 10:12:31 Hola Ernesto, pues el que hice no ordena solo hace lo que entendí en lo que posteo Brayan por eso al final le comento "Si lo que buscas es ordenar sugiero leas los métodos de ordenación." por que en lo que entendí el no busca ordenar sino comparar y sustituir valores Votes: 1 - Link answer
-
Date: 16-05-2017 12:30:39 Enserio muchísimas gracias a los 2 por brindarme su ayuda, mas que una tarea es por curiosidad de como podría hacerlo.... y no, no queria ordenarlos... estuve mirando la documentacion en php.net pero no pude encontrar un función que pudiera hacer eso.
En fin Ruben pudo darle solución a lo que yo estaba tratando de hacer y funcionó a la perfección. muchísimas gracias y a seguir programando... :D Votes: 0 - Link answer
To actively participate in the community first must authenticate, enter the system.Sign In