Página 1 de 1

combinar valores array asociativo

Publicado: 02 Nov 2015, 14:26
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.

Re: combinar valores array asociativo

Publicado: 02 Nov 2015, 14:53
por micontre

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


Re: combinar valores array asociativo

Publicado: 02 Nov 2015, 22:47
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.