Cita:
Iniciado por pateketrueke Se me ocurre lo siguiente:
- Ordena el arreglo con las coincidencias menores en primer orden.
- Itera tu array; por cada ítem agregas en un array auxiliar una copia del mismo.
La técnica consiste en usar el numero de id como indice en el arreglo auxiliar, asi se va sobreescribiendo quedando solo el mayor.
Bien, acabo de ejemplificar lo que mencionaba:
Código PHP:
<pre><?php
$arraycontenido = array(array("id" => 2, "coincidencias" => 3), array("id" => 3, "coincidencias" => 2), array("id" => 3, "coincidencias" => 1), array("id" => 5, "coincidencias" => 4), array("id" => 6, "coincidencias" => 2));
print_r($arraycontenido); // array original
usort($arraycontenido, function($a, $b)
{
return $a['coincidencias'] == $b['coincidencias'] ? 0 : ( $a['coincidencias'] < $b['coincidencias'] ? -1 : 1);
});
print_r($arraycontenido); // array ordenado
$auxiliar = array();
foreach ($arraycontenido as $one)
{
$auxiliar[$one['id']] = $one;
}
sort($auxiliar);
print_r($auxiliar); // array filtrado
?></pre>