加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP从数组中获取最高价值(来自SQL select)

发布时间:2020-12-13 17:21:32 所属栏目:PHP教程 来源:网络整理
导读:我有2个表:dt_times和dt_reports dt_times包含一个时间列表,dt_reports包含相关时间的投票(正/负). 我的代码执行以下操作: 在今天之前选择所有时间 对于每个时间 – 计算保证金((正 – 负)/正)* 100 结果存储在数组中 在所有迭代之后,这里是id =的var_dump
我有2个表:dt_times和dt_reports

dt_times包含一个时间列表,dt_reports包含相关时间的投票(正/负).

我的代码执行以下操作:

>在今天之前选择所有时间
>对于每个时间 – 计算保证金((正 – 负)/正)* 100
>结果存储在数组中

在所有迭代之后,这里是id =>的var_dump;余量

array(8) {

    [111]=> int(100)
    [110]=> int(-100)
    [108]=> int(-100)
    [100]=> int(100)
    [97]=> int(100)
    [92]=> int(100)
    [59]=> float(-71.4285714286)
    [58]=> float(-50)

 }

我需要选择最高边距,其中id也是最高的.因为你可以看到111,100,97和92 – 都具有100的相同值.

到目前为止我的代码是这样的:

while ($row = mysql_fetch_array($result)) {

    //Get values for quality
    //calculate margin
    $arr[$row['id']] = $margin;
    $arr2[$margin] = $row['id'];

}

$timeId = $arr2[max($arr)];

但是,在所有循环之后,$timeId为92,这是数组中最后一个值为100的id

我认为array_keys可能就是答案,但对于我生命中的爱,我无法弄明白=(

解决方法

使用krsort – http://us.php.net/manual/en/function.krsort.php按键对生成的数组进行排序.它将返回具有最高值的最高键作为第一个元素.

<?php
   $a = array(10 => 10,20=>10,20=>20);
   krsort($a);
   var_dump($a);

  ?>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读