combinar valores array asociativo

Sitios donde alojar nuestro proyecto, y hostings con PHP, MySQL, etc.
SPAM está sancionado con la exclusión.


Responder
natyguaper
Observador/a
Mensajes: 1
Registrado: 02 Nov 2015, 14:23

combinar valores array asociativo

#1

Mensaje por natyguaper »

Hola que tal,

Tengo un arreglo asociativo:

$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".

nunca se cuales son los maximos y minimos, son aleatorios...
pude que la proxima sean así:

$array = array("A" => 1, "B" => 2, "C" => 3, "D" => 4);

y solamente sería : "D/A"

gracias.

Avatar de Usuario
micontre
Ex Staff
Mensajes: 933
Registrado: 13 Sep 2008, 02:34
Edad: 58

Re: combinar valores array asociativo

#2

Mensaje por micontre »

este no es un tema para soporte 3.1 ni relacionado con phpbb .
lo muevo a recursos webmaster

Mis datos | Mostrar
URL: http://imaginewal.com/
Plantilla usuada : imaginewal_bis (estilo propio vasado en prosilver.)
Versión de phpBB: 3.1.6
Servidor: Hosting24.com , pago
actualización desde otra versión: ( 3.0.14 __ 3.1.16)
conversión desde otro tipo de Foro: No

AbaddonOrmuz
Invitado

Re: combinar valores array asociativo

#3

Mensaje por AbaddonOrmuz »

Si sólo necesitas un par por array y suponiendo que tu array siempre tenga esa estructura:

Código: Seleccionar todo

$array = ['A' => 5, 'B' => 78, 'C' => -1, 'D' => 0];

$tmp['max'] = max(array_values($array));
$tmp['min'] = min(array_values($array));
$tmp['str'] = '';

foreach ($array as $key => $value) {
	if ($array[$key] == $tmp['max']) {
		$tmp['str'][] = $key;
	}
	if ($array[$key] == $tmp['min']) {
		$tmp['str'][] = $key;
	}
}

// Conversión a string
$tmp['str'] = implode('/', $tmp['str']);
Con var_dump($tmp); podrás ver que tendrás algo como:

Código: Seleccionar todo

array(3) {
	["max"]=> int(78)
	["min"]=> int(-1)
	["str"]=> string(3) "B/C"
}
Siendo $tmp['str'] el string que necesitas.

Responder

Volver a “🗳️ Servidores”