Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] combinar valores array asocoativo

Estas en el tema de combinar valores array asocoativo en el foro de PHP en Foros del Web. Hola que tal, Tengo un arreglo asociativo: Código PHP: $array  = array( "A"  =>  55 ,  "B"  =>  55 ,  "C"  =>  57 ,  "D"  =>  ...
  #1 (permalink)  
Antiguo 02/11/2015, 04:20
 
Fecha de Ingreso: julio-2014
Mensajes: 9
Antigüedad: 9 años, 9 meses
Puntos: 0
Pregunta combinar valores array asocoativo

Hola que tal,

Tengo un arreglo asociativo:

Código PHP:
$array = array("A" => 55"B" => 55"C" => 57"D" => 60); 
y necesito generar ciertas cadenas de combinaciones dependiendo de los maximos y minimos,

por ejemplo:

en este caso "D" es el maximo y "A" y "B" los minimos,
así que tengo que generar estas cadenas: siempre (maximo/minimo)

"D/A"
"D/B"

si "C" también sería 55 tendría "D/C".

espero poderme explicar!
Gracias.
  #2 (permalink)  
Antiguo 02/11/2015, 04:30
 
Fecha de Ingreso: julio-2015
Ubicación: Barcelona
Mensajes: 93
Antigüedad: 8 años, 8 meses
Puntos: 3
Respuesta: combinar valores array asocoativo

Se supone que sabes de antemano cuales son los grandes?

Recorre el array y comparalo siempre con el siguiente, si el siguiente es mayor, ese es el maximo, si es menor, ese es el minimo, hasta que te quedan 2 variables, el menor y la mayor, habiendo recorrido todo el array.
  #3 (permalink)  
Antiguo 02/11/2015, 05:21
 
Fecha de Ingreso: julio-2014
Mensajes: 9
Antigüedad: 9 años, 9 meses
Puntos: 0
Pregunta Respuesta: combinar valores array asociativo

Hola!
Gracias por tu respuesta,
y no, nunca se cuales son los maximos, son aleatorios...
pude que la proxima sean así:

Código PHP:
$array = array("A" => 1"B" => 2"C" => 3"D" => 4); 
y solamente sería : "D/A"
  #4 (permalink)  
Antiguo 02/11/2015, 05:23
 
Fecha de Ingreso: julio-2015
Ubicación: Barcelona
Mensajes: 93
Antigüedad: 8 años, 8 meses
Puntos: 3
Respuesta: combinar valores array asocoativo

Pues prueba a crear el código de la manera en la que te he explicado y si no puedes, pon lo que has llegado a hacer y te ayudamos, obviamente no te pondré el código directamente, no tiene gracia.
  #5 (permalink)  
Antiguo 02/11/2015, 05:40
 
Fecha de Ingreso: julio-2014
Mensajes: 9
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: combinar valores array asocoativo

de verdad gracias por tu ayuda,
mira he llegado hasta aqui:
Código PHP:
<?php


$array 
= array("A" => 55"B" => 55"C" => 57"D" => 60);

$min min($array);
$max max($array);             


foreach (
$array as $key => $value) {
    
    if(
$value==$max){

        echo 
$key "<br>";

    }

    if(
$value==$min) {
        echo 
$key "<br>";

    }

    
    
    
}
donde saco las letras que son minimas "A" y "B", y el maximo es "D"
lo que ya no veo como es concatenar "D" con "A" y "D" con "B", creeme voy empezando con esto y si quiero aprender, gracias.
  #6 (permalink)  
Antiguo 02/11/2015, 05:44
 
Fecha de Ingreso: julio-2015
Ubicación: Barcelona
Mensajes: 93
Antigüedad: 8 años, 8 meses
Puntos: 3
Respuesta: combinar valores array asocoativo

Te lo cambio por esto y te lo dejo así medio para que te cueste entenderlo, hay muchas maneras de hacerlo. (No lo he probado, está recién inventado, pero es para que te hagas la idea de lo que quería decir)

Código PHP:
Ver original
  1. $i =0;
  2. foreach ($array as $key => $value) {
  3.      $min = $key[$i];
  4. $max = $key[$i];
  5.  
  6.     if($i>0)
  7. {
  8. if($key[$i] >= $key[$i-1]
  9. {
  10. $max = $key[$i];
  11. }
  12.  
  13. if($key[$i] < $key[$i-1]
  14. {
  15. $min = $key[$i]
  16. }
  17. }
  18. $i++;
  19. }
  20. echo $min.'/'.$max.
  #7 (permalink)  
Antiguo 02/11/2015, 05:46
 
Fecha de Ingreso: julio-2015
Ubicación: Barcelona
Mensajes: 93
Antigüedad: 8 años, 8 meses
Puntos: 3
Respuesta: combinar valores array asocoativo

Cita:
Iniciado por hechicerd0 Ver Mensaje
Te lo cambio por esto y te lo dejo así medio para que te cueste entenderlo, hay muchas maneras de hacerlo. (No lo he probado, está recién inventado, pero es para que te hagas la idea de lo que quería decir)

Código PHP:
Ver original
  1. $i =0;
  2. $min = 0; //Hay que declarar las variables antes por posibles errores.
  3. $max = 0;
  4. foreach ($array as $key => $value) {
  5.      $min = $key[$i];
  6. $max = $key[$i];
  7.  
  8.     if($i>0)
  9. {
  10. if($key[$i] >= $key[$i-1]
  11. {
  12. $max = $key[$i];
  13. }
  14.  
  15. if($key[$i] < $key[$i-1]
  16. {
  17. $min = $key[$i]
  18. }
  19. }
  20. $i++;
  21. }
  22. echo $min.'/'.$max.
  #8 (permalink)  
Antiguo 02/11/2015, 05:49
 
Fecha de Ingreso: julio-2014
Mensajes: 9
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: combinar valores array asocoativo

gracias hechicerd0,
lo probaré, mil gracias.
  #9 (permalink)  
Antiguo 02/11/2015, 05:59
 
Fecha de Ingreso: julio-2015
Ubicación: Barcelona
Mensajes: 93
Antigüedad: 8 años, 8 meses
Puntos: 3
Respuesta: combinar valores array asocoativo

Te dejo aquí una respuesta válida y probada con el codigo necesario modificado del anterior para que le eches un vistazo si no consigues hacerlo bien, pero procura hacerlo tu misma antes!


Código PHP:
Ver original
  1. $array = array("A" => 55, "B" => 55, "C" => 57, "D" => 60);
  2.  
  3. $i = 0;
  4. $min = 0; //Hay que declarar las variables antes por posibles errores.
  5. $max = 0;
  6. foreach ($array as $key) {
  7.     if ($i == 0) {
  8.         $min = $key;
  9.         $max = $key;
  10.     }
  11.     if ($key > $max) {
  12.         $max = $key;
  13.     }
  14.  
  15.     if ($key < $min) {
  16.         $min = $key;
  17.     }
  18.  
  19.     $i++;
  20. }
  21. echo $min . '/' . $max ;
  #10 (permalink)  
Antiguo 02/11/2015, 06:02
 
Fecha de Ingreso: julio-2014
Mensajes: 9
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: combinar valores array asocoativo

Gracias, si, me guiare con lo que me pasaste antes, para probar y probar
te agradezo tu tiempo hechicerd0!

Etiquetas: combinar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:51.