Ответ 1
array_search поможет вам.
$returnThis = array_search(max($arrCompare),$arrCompare);
Я использую функцию max(), чтобы найти наибольшее значение в массиве. Мне нужен способ вернуть ключ этого значения. Я пробовал играть с функцией array_keys(), но все, что я могу сделать, это вернуть самый большой ключ массива. Должен быть способ сделать это, но в руководствах php ничего не говорится.
Вот пример кода, который я использую:
$arrCompare = array('CompareOne' => $intOne,
'CompareTwo' => $intTwo,
'CompareThree' => $intThree,
'CompareFour' => $intfour);
$returnThis = max($arrCompare);
Я могу успешно получить максимальное значение массива, я просто не могу получить связанный ключ. Любые идеи?
Изменить: просто уточнить, использование этого не будет работать:
$max_key = max( array_keys( $array ) );
Это сравнивает ключи и ничего не делает со значениями в массиве.
array_search поможет вам.
$returnThis = array_search(max($arrCompare),$arrCompare);
Если вам нужны все ключи для максимального значения из исходного массива, вы можете сделать:
$keys = array_keys($array, max($array));
Не однострочный, но он выполнит требуемую задачу.
function max_key($array)
{
$max = max($array);
foreach ($array as $key => $val)
{
if ($val == $max) return $key;
}
}
Из http://cherryblossomweb.de/2010/09/26/getting-the-key-of-minimum-or-maximum-value-in-an-array-php/