Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..

Gracias.

La Administración de phpBB España.

combinar valores array asociativo

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


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: 55

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.


Volver a “🗳️ Servidores”