В PHP, скажем, что у вас есть ассоциативный массив:
$pets = array( "cats" => 1, "dogs" => 2, "fish" => 3 );
Как мне найти ключ с самым низким значением? Здесь я буду искать cats
.
Есть ли какие-то встроенные функции PHP, которые я пропустил, что это делает? Было бы также здорово, если бы было решение, в котором было указано несколько значений, как показано ниже:
$pets = array( "cats" => 1, "dogs" => 1, "fish" => 2 );
Выше, я бы не прочь, если бы он просто вышел; cats
или dogs
.
Заранее спасибо.
array_keys
– ваш друг:
$pets = array( "cats" => 1, "dogs" => 2, "fish" => 3 ); array_keys($pets, min($pets)); # array('cats')
PS : здесь есть дубликат где-то на SO (у него был max
вместо min
, но я могу отчетливо его запомнить).
Вот как я это сделал.
$pets = array( "cats" => 1, "dogs" => 2, "fish" => 3 ); array_search(min($pets), $pets);
Надеюсь, это поможет
Можете попробовать посмотреть на них:
$min_val = null; $min_key = null; foreach($pets as $pet => $val) { if ($val < $min_val) { $min_val = $min; $min_key = $key; } }
Вы также можете перевернуть массив и отсортировать его по ключу:
$flipped = array_flip($pets); ksort($flipped);
Тогда первый ключ является минимальным, а его значение является ключом в исходном массиве.
найти наивысшую ценность
print max(120, 7, 8, 50);
возвращает -> 120
$array = array(100, 7, 8, 50, 155, 78); print max($array);
возвращается -> 155
найти самое низкое значение
print min(120, 7, 8, 50);
возвращает -> 7
$array = array(50, 7, 8, 101, 5, 78); print min($array);
возвращается -> 5