在 php 中使用数组查找百分位

2024-02-20

我有一个像这样的数组

 array(
      45=>5,
      42=>4.9,
      48=>5,
      41=>4.8,
      40=>4.9,
      34=>4.9,
      .....
      )

这里的索引是userid而价值就是他的分数。

现在我想要的是为用户实现百分位,例如 45,48 的百分位将是 99,42,40,34 将是 97,41 将是 94。

我怎样才能做到这一点?


  1. 根据“分数”对数组进行升序排序
  2. 百分位数 =(已排序数组中元素的索引)* 100 /(数组中的总元素)

Example:

<?php
$array = array(
      45=>5,
      42=>4.9,
      48=>5,
      41=>4.8,
      40=>4.9,
      34=>4.9,
      );

print("Unsorted array:<br/>");
print_r($array);
arsort($array);
print("<br/>");
print("Sorted array:<br/>");
print_r($array);
print("<br/>");

$i=0;
$total = count($array);
$percentiles = array();
$previousValue = -1;
$previousPercentile = -1;
foreach ($array as $key => $value) {
    echo "\$array[$key] => $value";
    if ($previousValue == $value) {
    $percentile = $previousPercentile;
    } else {
    $percentile = 99 - $i*100/$total;
    $previousPercentile = $percentile;
    }
    $percentiles[$key] = $percentile;
    $previousValue = $value;
    $i++;
}

print("Percentiles:<br/>");
print_r($percentiles);
print("<br/>");

?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 php 中使用数组查找百分位 的相关文章

  • 合并 csv 文件 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何在 PHP 或 joomla 中将多个 CSV 文件合并为一个 csv 文件 将文件夹中 csv 文件中的所有数据合并到文本文件中 通
  • 如何处理 PHP 中浮点数的奇怪舍入

    众所周知 浮点运算并不总是完全准确 但是如何处理它的不一致之处呢 As an example in PHP 5 2 9 this doesn t happen in 5 3 echo round 14 99225 4 14 9923 ech
  • 从 json 数组获取值并执行 sql 插入

    这是我的数组 json 1 Device ID a9a3346be4375a92 Date 2012 05 31 Time 15 22 59 Latitude 51 4972912 Longitude 0 1108178 2 Device
  • Godaddy 托管上的 CakePHP 控制台

    我一直在努力让我的 CakePHP 网站在 Godaddy 网格托管 帐户上运行 我的蛋糕应用程序设置是从帐户的子目录托管的 并且可以通过子域访问 我必须调整我的 htaccess 文件才能使其正常工作 现在我需要让 CakePHP 控制台
  • JavaScript 数组和对象除了 .length 属性之外有什么区别?

    我认为 JS 数组只是一个哈希映射 它只接受整数值作为键 length 属性只返回最大索引 1 这是正确的吗 还有其他区别吗 您错了 数组可以有任何你想要的键 此外 他们还继承了Array原型
  • 证明 Excel VBA Scripting.Dictionary 不保留项目插入顺序

    我正在尝试决定是否为我的项目使用 Excel VBA 集合或字典 出于多种原因 我倾向于字典 但在使用字典时我会继续阅读它For Each循环检索字典项目或从字典 Items 数组读取项目时 检索顺序可能不是添加项目的顺序 这对于我的应用程
  • 如何使用 PHP 动态插入 CSS 类?

    下面的代码有什么问题 我想在相应的情况下动态插入 当前 CSS 类 li 单击元素 谢谢 section section li
  • cakephp 1.1 与 php 5.3

    我刚刚从 php 5 1 升级到 5 3 之前在我的服务器上使用 cakephp 1 1 自从升级 或者可能更早 我不确定 以来 我收到以下错误 任何人都可以透露一些信息 Deprecated Assigning the return va
  • PHP语言问题

    我有一个 php 页面 它将邮件发送到特定电子邮件 其中包含此页面表单中的数据 邮件必须以网站的母语 阿拉伯语 发送 但是当我单击表单上的提交按钮时 收到的邮件一半可读 阿拉伯语 另一部分不可读 符号 我想知道如何解决这个问题并且能够发送邮
  • PHP:在多维数组中查找相同的键并合并结果

    我有一个多维数组 如下所示 array 0 gt array WS gt array id gt 2 name gt hello 1 gt array SS gt array id gt 1 name gt hello2 2 gt arra
  • 如何从一维数组和静态字符串创建对象

    我想要一个像 var obj ABC name true dob true CDE name true dob true EFG name true dob true CBA name true dob true XYZ name true
  • PHP URL 验证

    我知道有无数的线程问这个问题 但我一直无法找到一个可以帮助我解决这个问题的线程 我基本上试图解析大约 10 000 000 个 URL 的列表 确保它们根据以下标准有效 然后获取根域 URL 此列表包含您能想象到的几乎所有内容 包括类似的内
  • WooCommerce 自定义产品类型选项不隐藏自定义产品选项卡

    我刚刚向我的 WC 管理产品页面添加了自定义产品类型选项 add filter product type options this filter product type options 99 1 public function filte
  • 打印表数据mysql php

    我在尝试打印表格的一些数据时遇到问题 我是 php mysql 的新手 但我认为我的代码是正确的 这里是 h1 Lista de usu rios h1
  • 通过 SOAP 的 Gmt php 或 UTC C# 等效项

    is C DateTime UtcNow和 PHPdate c 是等价的 我怀疑 因为当我肥皂时 我得到了 C
  • 如何根据另一个下拉列表中的选择动态填充下拉列表中的选项?

    我有一个表 其中包含类别信息 例如产品 我已将它们列在下拉菜单中 现在 我需要做的是 在下一个下拉菜单中列出所选类别的子类别 我希望 javascript 是必需的 但我对 javascript 还不太熟悉 将非常感谢您的帮助 你应该使用
  • numpy:如何连接数组? (获得多个范围的并集)

    我使用Pythonnumpy 我有一个 numpy 索引数组a gt gt gt a array 5 7 12 18 20 29 gt gt gt type a
  • 在 Windows 上查看 PHP 文件夹

    我正在编写一个简单的 PHP 脚本来监视文件夹及其子文件夹的任何更改 新文件 修改 删除 然后执行操作 我将使用 Windows 上的命令行运行此脚本php f script php 我一直在寻找一种在 Windows 上观看具有 PHP
  • PHP 文件上传帮助

    div align center div 这是我的代码
  • 使用 md5 加密的 PHP 和 Mysql 查询出现问题

    我使用普通的 php mysql 插入查询并使用 md5 加密密码 这是插入查询 sql mysql query INSERT INTO user username password role approved values usernam

随机推荐

  • SVN 经常说文件被我锁定在另一个工作副本中

    我有一个 SVN 存储库 托管在 Dreamhost 上 在二进制文件上设置了需求锁定 有时会发生这样的情况 在提交我锁定和修改的文件时 提交失败并出现错误 Error Commit failed details follow Error
  • 对于 .NET 开发人员来说,Git 与 Mercurial 比较?

    我一直想知道对于 NET 开发人员来说 更好的 DVCS 是什么 从阅读各种信息来看 听起来 Mercurial 在 Windows 上运行得更好 但其他信息声称 Git 在提供高质量的 Windows 和 Visual Studio 工具
  • 文本第二行缩进
  • 我需要使用两张光盘list style type lower roman 来设置列表的样式 但因为我正在使用content in a before伪元素创建圆盘效果 第二行 li 文本未对齐 有没有更简单的方法来做到这一点 eg i Som
  • 如何在 OpenGL ES 上有效地将深度缓冲区复制到纹理

    我正在尝试通过移植在 iOS 上的 OpenGL ES 2 0 中获得一些阴影效果一些代码 http www codesampler com usersrc usersrc 8 htm来自标准 GL 示例的一部分涉及将深度缓冲区复制到纹理
  • Nginx 和 PHP:没有写权限

    我在 Nginx 上运行的 PHP 应用程序 Baikal 遇到问题 应用程序对其配置文件之一没有 不再 写入权限 该问题可能是在升级 PHP 后出现的 以下是有关我的设置的一些信息 操作系统 Arch Linux Nginx 版本 1 1
  • MySQL 用户密码最大长度

    MySQL 用户密码的最大长度是多少 MySQL使用PASSWORD str http dev mysql com doc refman 5 1 en encryption functions html function password加
  • 改善进度条性能不佳

    我正在尝试使用 MobX 存储将进度状态传递给其他进度栏 有两个进度条 其中之一应在短时间内 约2秒 独立变化 我用了setTimeOut增加目前的进度并且效果很好 然后我尝试将当前进度值保存到 MobX 存储中以传递给另一个组件 此后 进
  • Excel 进程卡在任务管理器中

    在 Access 中 我打开一个 Excel 文件 从中读取并关闭它 Excel 进程不会离开任务管理器 我发现同样的问题here https social msdn microsoft com Forums en US 908ba72a
  • Prolog - 从事实列表中获取集合的最大值(使用失败谓词)

    基本上我有一个这样的事实清单 set x 2 set x 7 set x 10 set x 4 我需要找到这个集合的最大元素 Input maximum x MaxElement Output MaxElement 10 现在这个想法本身并
  • Android人像相机可靠性

    我正在开发一个针对 SDK 8 的应用程序 最小 SDK 7 使用相机视图 显然 旋转相机拍摄肖像的问题已经引起了相当多的讨论 我目前有以下修复程序将 SDK 7 和 8 分开 if android os Build VERSION SDK
  • 如何在闪亮的应用程序中使用观察功能调整错误

    我想对下面的代码进行调整 请注意 我有两个输入选项 Excel and Database 如果你选择 input button Excel do data lt reactive Test 如果是input button database
  • 使用 boost Spirit 语法构建错误(boost 1.43 和 g++ 4.4.1)第三部分

    Ok 我正在尝试构建一个语法 目前它看起来像这样 ifndef INPUTGRAMMAR H define INPUTGRAMMAR H include
  • 如何在应用程序购买中设置自动续订以满足 Apple 准则?

    我有 2 个自动续订的应用内订阅正在接受 Apple 审核 但我一直被拒绝 请注意 这与 IAP 产品 显然尚未经过审查 无关 而是与我如何在 UI 中呈现信息有关 我永远无法让苹果明确说明如何克服拒绝 我上诉了一次 但再次被拒绝 尽管我确
  • 纯 HTML 中的彩色 SVG 在 React 中是全黑的。为什么?

    我在 Meteor 中使用 React 当我将 SVG 添加到 React 组件时 样式不会应用 但同样的代码在纯 HTML 中可以按预期工作 这是我的 SVG 代码
  • Google 地图 v3 API 扩展范围。 JavaScript 操作方法?

    function initialize Creating a map var map new google maps Map document getElementById map zoom 10 center new google map
  • Android:如何获取当前的前台活动(从服务)?

    有没有一种原生的 android 方法可以从服务获取对当前正在运行的 Activity 的引用 我有一个在后台运行的服务 我想在事件发生时 在服务中 更新我当前的活动 有没有一种简单的方法可以做到这一点 就像我上面建议的那样 Update
  • NSIS - 检查进程是否存在(nsProcess 不工作)

    对于我的 NSIS 卸载程序 我想检查进程是否正在运行 FindProcDLL 在 Windows 7 x64 下无法工作 所以我尝试了 nsProcess 我从网站下载了1 6版本 http nsis sourceforge net Ns
  • mongodb 按多个字段对值进行分组

    例如 我有这些文件 addr address1 book book1 addr address2 book book1 addr address1 book book5 addr address3 book book9 addr addre
  • 在asp.net中设置图像过期日期

    当我获得主机时 在 Visual Studio 和 IIS7 中使用 asp net 我有一个充满图标的文件夹 这些图标很少改变并且在每个页面上都使用 有没有一种方法可以将某个目录设置为每 2 个小时左右过期一次 这样我就可以减少对服务器的
  • 在 php 中使用数组查找百分位

    我有一个像这样的数组 array 45 gt 5 42 gt 4 9 48 gt 5 41 gt 4 8 40 gt 4 9 34 gt 4 9 这里的索引是userid而价值就是他的分数 现在我想要的是为用户实现百分位 例如 45 48