Сначала найдите максимальное значение:
$etudiant = array ('a'=>'2','b'=>'5', 'c'=>'6', 'd'=>'6', 'e'=>'2');
$maxValue = max($etudiant);
Во-вторых, найдите значения, которые появляются более одного раза:
$dups = array_diff_assoc($etudiant, array_unique($etudiant));
Наконец, проверьте в исходных массивах значения, соответствующие либо $maxValue
, либо значениям, перечисленным в $dups
:
$MaxArray = $OtherArray = $ElseArray = array();
foreach ($etudiant as $key => $value) {
if ($value == $maxValue) {
$MaxArray[$key] = $value;
} else if (in_array($value, $dups)) {
$OtherArray[$key] = $value;
} else {
$ElseArray[$key] = $value;
}
}
Вы получите:
$MaxArray: Array
(
[c] => 6
[d] => 6
)
$OtherArray: Array
(
[a] => 2
[e] => 2
)
Примечание: я не был уверен, что вы хотите, чтобы $MaxArray
содержал элементы максимального значения, только если он появляется более одного раза в исходном массиве. Если это так, просто измените вызов max
на:
$maxValue = max($dups);