php - 如何返回具有最高值的数组元素?

标签 php

在我的代码中,我有两个具有相同年龄的元素 "Joe"=>"43""Rob"=>"43"

我的代码输出是:

Joe

我要输出:

Joe and Rob

因为它们的值(value)最高。

这是我的代码:

<?php
    $cur = 1;

    $age = array("Peter" => "35", "Ben" => "37", "Joe" => "43", "Rob" => "43");
    $new_array = array();
    arsort($age);
    $new_array = $age;
    $key = array_search(max($new_array), $new_array);

    while ($cur > 0) {
        echo $key;
        $cur--;
    }
?>

最佳答案

我会更改数组中的键和值,然后按键排序并返回第一个键的值:

$ages = array("Peter" => "35", "Ben" => "37", "Joe" => "43", "Rob" => "43");
$new = array();

foreach ($ages as $name => $age) {
  $new[$age][] = $name;
}

uksort($new, function($ka, $kb) { return $kb - $ka; }); // or just krsort($new);
$new = array_values($new)[0]; // <- to use this you have to have at least PHP 5.4

// if you have PHP < 5.4 you can simply do it in two steps:
// $new = array_values($new);
// $new = $new[0];

See it in action!

编辑:even simpler!

$ages = array("Peter" => "35", "Ben" => "37", "Joe" => "43", "Rob" => "43");
$max = max($ages);
$new = array_keys(array_filter($ages, function ($age) use ($max) { return $age == $max; }));

关于php - 如何返回具有最高值的数组元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33624879/

相关文章:

php - 将秒转换为天、小时、分钟和秒

php - 有没有办法更新行以添加批处理 ID 并返回该 ID?

php - 您对 PHP 编码标准工具/系统/程序有何建议?

php - 查询返回正确的行数,但第 1 行丢失

javascript - AJAX 文件上传显示 PHP 输出而不是停留在页面上

php - html 和 css 没有将我的元素移动到正确的位置

php - 更改 WooCommerce 'xyz' 类别页面上显示的产品数量

javascript - 检查 javascript 数组中变量的位置

php - 使用 PHP 的 HTTP PUT、DELETE 和 I/O 流

php - Mysql 地理空间搜索返回奇怪的结果