根据数值范围从PHP数组中查找对应值

根据数值范围从php数组中查找对应值

本文将介绍如何在PHP中,根据一个数值(total_score)在另一个已排序的数组(percentile_bounds)中的位置,从一个数组(percentiles)中查找对应的值。通过使用array_filter和array_keys等函数,可以高效地实现此功能,并提供示例代码帮助读者理解和应用。

问题描述

假设我们有两个数组:$percentiles 和 $percentile_bounds,以及一个整数值 $total_score。$percentile_bounds 数组是已排序的,我们希望找到 $total_score 落在 $percentile_bounds 中的哪个区间,然后返回 $percentiles 数组中对应的值。

解决方案

PHP提供了一些内置函数,可以帮助我们高效地实现这个功能。以下是一种简洁的解决方案:

<?php$total_score = 120;$percentile_bounds = [84, 104, 109, 115, 120, 123, 125, 127, 129, 132, 135, 136, 137, 139, 141, 145, 148, 151, 155, 159];$percentiles = [0,  5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95];$index = max(array_keys(array_filter($percentile_bounds, function ($x) use ($total_score) { return $x 

代码解释:

立即学习“PHP免费学习笔记(深入)”;

array_filter($percentile_bounds, function ($x) use ($total_score) { return $x : 使用 array_filter 函数过滤 $percentile_bounds 数组,只保留小于 $total_score 的元素。匿名函数 function ($x) use ($total_score) { return $x array_keys(…): 获取经过 array_filter 过滤后的数组的键(索引)。max(…): 由于 $percentile_bounds 数组是已排序的,因此过滤后数组的最后一个键(索引)对应于小于 $total_score 的最大值在 $percentile_bounds 数组中的位置。使用 max 函数获取这个最大的键。$percentiles[$index]: 使用获取到的索引 $index,从 $percentiles 数组中获取对应的值。

示例

以下是一些使用不同 $total_score 值的示例:

$total_score = 130; 输出:percentile: 40$total_score = 153; 输出:percentile: 85$total_score = 100; 输出:percentile: 0$total_score = 84; 输出:percentile: 0

注意事项

边界情况: 如果 $total_score 小于 $percentile_bounds 数组中的最小值,上述代码将返回索引为 0 的值。 如果需要处理这种情况,可以在代码中添加额外的判断逻辑。例如,当 $total_score 数组排序: 此解决方案依赖于 $percentile_bounds 数组是已排序的。如果数组未排序,则需要先对其进行排序。性能: 对于大型数组,可以考虑使用二分查找等更高效的算法来查找 $total_score 的位置。

总结

通过结合 array_filter、array_keys 和 max 函数,我们可以简洁高效地根据一个数值在另一个数组中的位置,从PHP数组中查找对应的值。 这种方法在处理范围查找、数据映射等场景中非常有用。

以上就是根据数值范围从PHP数组中查找对应值的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1270582.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
PHP foreach 循环中识别并处理最后一个元素的技巧
上一篇 2025年12月10日 13:04:01
解决PHP PDO登录表单中的常见错误
下一篇 2025年12月10日 13:04:36

相关推荐

  • 如何在MySQL中设计一个安全性高且易于维护的会计系统表结构以满足合规要求?

    如何在MySQL中设计一个安全性高且易于维护的会计系统表结构以满足合规要求?如何在MySQL中设计一个安全性高且易于维护的会计系统表结构以满足合规要求?如何在MySQL中设计一个安全性高且易于维护的会计系统表结构以满足合规要求?如何在MySQL中设计一个安全性高且易于维护的会计系统表结构以满足合规要求?

    如何在MySQL中设计一个安全性高且易于维护的会计系统表结构以满足合规要求? 随着数字化时代的到来,会计系统在企业中扮演着至关重要的角色。设计一个安全性高且易于维护的会计系统表结构对于确保财务数据的完整性和准确性至关重要。本文将提供一些指导原则和具体的代码示例,帮助您在MySQL中设计这样一个会计系…

    2026年9月29日 • 用户投稿
    100
  • 大窑“变脸”!国民汽水要被外资拿下了?

    大窑“变脸”!国民汽水要被外资拿下了?大窑“变脸”!国民汽水要被外资拿下了?大窑“变脸”!国民汽水要被外资拿下了?大窑“变脸”!国民汽水要被外资拿下了?

    此前备受关注的大窑或将被外资收购的传闻,近日出现了新的进展。 根据重庆市市场监管局发布的《2025年6月30日-2025年7月6日无条件批准经营者集中案件列表》,KKR收购远景国际股权案已于2025年7月4日完成审批。 公开资料显示,远景国际成立于2024年,注册地为开曼群岛,通过其关联公司在境内从…

    2026年9月29日 • 用户投稿
    000
  • 豆包AI生成商业计划书的技巧 快速梳理创业要点的AI方法

    豆包AI生成商业计划书的技巧 快速梳理创业要点的AI方法豆包AI生成商业计划书的技巧 快速梳理创业要点的AI方法豆包AI生成商业计划书的技巧 快速梳理创业要点的AI方法豆包AI生成商业计划书的技巧 快速梳理创业要点的AI方法

    用豆包ai生成商业计划书的关键在于结构引导与内容优化。首先明确核心内容结构,先提问获取通用框架,再结合项目实际逐项补充,控制在8个部分以内,突出重点并简化合并章节;其次使用关键词+语气提示引导ai写出专业内容,如“产品优势”可设定“以专业语气写一段关于智能喂食器的产品优势说明”;第三步借助ai生成财…

    2026年9月29日 • 用户投稿
    100
  • Linux如何后台运行进程 nohup和&用法解析

    Linux如何后台运行进程 nohup和&用法解析Linux如何后台运行进程 nohup和&用法解析Linux如何后台运行进程 nohup和&用法解析Linux如何后台运行进程 nohup和&用法解析

    1.&amp;amp;amp;amp;amp;amp;用于将进程放到当前终端的后台运行,但关闭终端时进程会被终止;2.nohup可防止进程因终端关闭被挂断,结合&amp;amp;amp;amp;amp;amp;使用能实现后台持续运行。两者区别在于&amp;amp;amp;am…

    2026年9月29日 • 用户投稿
    300
  • 李飞飞世界模型大更新! 实时生成 3D 世界,只要一块 GPU

    李飞飞世界模型大更新! 实时生成 3D 世界,只要一块 GPU李飞飞世界模型大更新! 实时生成 3D 世界,只要一块 GPU李飞飞世界模型大更新! 实时生成 3D 世界,只要一块 GPU李飞飞世界模型大更新! 实时生成 3D 世界,只要一块 GPU

    当 OpenAI 的奥特曼还在到处买显卡、买算力,来支撑他的 Sora 2 视频生成模型。 李飞飞的实验室 The World Labs,用一张显卡就能运行一个世界。他们今天发布了一项名为 RTFM ( Real-Time Frame Model ) 的新技术,一个全新的实时世界生成模型。 和九月中…

    2026年9月29日 • 用户投稿
    200
  • 了解Linux系统中各种不同类型的日志文件

    了解Linux系统中各种不同类型的日志文件了解Linux系统中各种不同类型的日志文件了解Linux系统中各种不同类型的日志文件了解Linux系统中各种不同类型的日志文件

    理解Linux系统中不同类型的日志文件 在Linux系统中,日志文件是非常重要的系统组成部分,它记录了系统活动、错误消息、应用程序日志等信息,帮助管理员了解系统的运行状况。本文将介绍Linux系统中常见的日志文件类型,并提供具体的代码示例,帮助读者更好地理解和利用日志文件。 1. 系统日志(sysl…

    2026年9月29日 • 用户投稿
    100
  • 网络地址和ip地址区别子网掩码

    网络地址和ip地址区别子网掩码网络地址和ip地址区别子网掩码网络地址和ip地址区别子网掩码网络地址和ip地址区别子网掩码

    IP地址是设备的唯一标识,由网络和主机部分组成;网络地址表示IP所在网络的起始地址,通过IP与子网掩码进行逻辑与运算得出;子网掩码用于划分IP中网络和主机部分,如255.255.255.0对应/24,表示前24位为网络位。三者共同确定设备所属网络,是子网划分和路由的基础。 网络地址和IP地址是计算机…

    2026年9月29日 • 用户投稿
    100
  • 桶排序是什么?桶排序的实现方法

    桶排序是什么?桶排序的实现方法桶排序是什么?桶排序的实现方法桶排序是什么?桶排序的实现方法桶排序是什么?桶排序的实现方法

    桶排序通过将数据分到多个桶内,对每个桶单独排序再合并,实现高效排序。其核心优势在于数据均匀分布时可达O(n+k)线性时间复杂度。与计数排序(统计频次)和基数排序(按位排序)不同,桶排序按值范围划分,适用于浮点数且更灵活,但性能依赖数据分布均匀性。实际应用中面临数据分布不均导致性能退化、内存开销大、桶…

    2026年9月29日 • 用户投稿
    100
  • 一门双至尊!荣耀MagicPad3 Pro平板首发第五代骁龙8至尊版:定义安卓最强平板

    一门双至尊!荣耀MagicPad3 Pro平板首发第五代骁龙8至尊版:定义安卓最强平板一门双至尊!荣耀MagicPad3 Pro平板首发第五代骁龙8至尊版:定义安卓最强平板一门双至尊!荣耀MagicPad3 Pro平板首发第五代骁龙8至尊版:定义安卓最强平板一门双至尊!荣耀MagicPad3 Pro平板首发第五代骁龙8至尊版:定义安卓最强平板

    9月25日,高通在骁龙峰会上正式揭晓了其最新旗舰移动平台——第五代骁龙8至尊版。这一发布瞬间点燃行业关注,而更引人瞩目的是,多家终端品牌随即宣布将推出搭载该芯片的新品,其中荣耀尤为抢眼。 荣耀产品线总裁方飞在峰会现场宣布:荣耀MagicPad3 Pro与荣耀Magic8系列将同步首发第五代骁龙8至尊…

    2026年9月29日 • 用户投稿
    100
  • qq等级排名查看方法

    qq等级排名查看方法qq等级排名查看方法qq等级排名查看方法qq等级排名查看方法

    1、打开手机QQ点击左上角头像,选择“等级”进入后点右上角好友排名可查看在好友中的等级排序;2、通过搜索“QQ等级全球荣耀榜”参与活动可查全球排名,若无法找到则表示活动未开启。 如果您想了解自己在QQ中的等级排名情况,但不确定如何操作,则可能是由于未找到正确的查看入口或当前不处于特定活动周期内。以下…

    2026年9月29日 • 用户投稿
    100
  • 散热膏的涂抹方式是否会对温度结果产生显著影响?

    散热膏涂抹方式影响散热效果,常见方法有米粒法、X形法、五点法和手动涂抹法,选择合适方法需根据散热器设计、CPU顶盖平整度和散热膏粘稠度;涂抹时应控制用量、避免溢出,确保均匀覆盖,过多或不均会导致温度升高或短路风险;一般建议1-2年更换一次,并选用高导热系数、适中粘稠度、良好电绝缘性的知名品牌产品。 …

    2026年9月29日
    200
  • Yii框架中的队列:提高应用程序的性能和可靠性

    随着互联网的不断发展,应用程序的性能和可靠性越来越成为开发者关注的重要问题。针对这一问题,现代的应用程序中常常采用队列来提高性能和可靠性,yii框架中的队列便是其中之一。 Yii框架是一个高性能的PHP开发框架,具有高度的可扩展性和灵活性。在大规模的应用程序中,如果直接执行任务可能会由于程序的复杂性…

    用户投稿 2026年9月29日
    200
  • 抖音直播画面卡顿怎么办 抖音直播画面优化与网络调整技巧

    先确认上行网速是否达标,再优化设备编码设置。使用有线连接、关闭占用程序、开启硬编码并匹配分辨率与码率,结合平台工具调试,可有效解决抖音直播卡顿问题。 抖音直播画面卡顿,核心问题通常出在网络上传带宽不足或电脑编码性能不够。很多人以为家里宽带是千兆就一定流畅,其实直播看的是上行网速,这才是关键。下面从网…

    2026年9月29日
    100
  • 小米手环6高清壁纸(展现个性风采的必备配件)

    小米手环6高清壁纸(展现个性风采的必备配件)小米手环6高清壁纸(展现个性风采的必备配件)小米手环6高清壁纸(展现个性风采的必备配件)小米手环6高清壁纸(展现个性风采的必备配件)

    小米手环6作为一款智能手环,不仅具备强大的功能,还融入了高清壁纸的设计,使其成为展现个性风采的必备配件。本文将带领您走进小米手环6的高清壁纸世界,体验其中的绚丽色彩与视觉盛宴。 小米手环6 高清壁纸:打造与众不同的个性 问题:小米手环6如何彰显个性?简单说明:小米手环6配备了高清壁纸设计,用户可从精…

    2026年9月29日 • 用户投稿
    000
  • 掌握VSCode插件开发与发布完整实战教程

    答案:开发并发布VSCode插件需先安装Node.%ignore_a_1%和yo generator-code,用yo code初始化项目后,在extension.ts中注册命令并在package.json声明;通过F5调试验证功能;最后安装vsce工具,配置发布者和PAT令牌,运行vsce pub…

    2026年9月29日
    800
  • 详解几种常见的Linux系统重启命令

    详解几种常见的Linux系统重启命令详解几种常见的Linux系统重启命令详解几种常见的Linux系统重启命令详解几种常见的Linux系统重启命令

    标题:深入探讨几种常见的Linux系统重启命令 在Linux系统中,重启是一个常见的操作,而重启命令的选择和使用也至关重要。本文将深入探讨几种常见的Linux系统重启命令,并提供具体的代码示例,帮助读者更好地理解和掌握这些命令。 一、shutdown命令 shutdown命令是Linux系统中一个非…

    2026年9月29日 • 用户投稿
    600
  • 如何在Java中使用用户输入退出for或while循环

    如何在Java中使用用户输入退出for或while循环如何在Java中使用用户输入退出for或while循环如何在Java中使用用户输入退出for或while循环如何在Java中使用用户输入退出for或while循环

    本文旨在介绍如何在Java程序中,通过用户输入来灵活地中断for或while循环的执行。我们将探讨如何使用BufferedReader类来接收用户输入,并在循环内部判断输入是否为特定退出指令,从而实现程序的动态控制。同时,也会提供代码示例和注意事项,帮助你编写更健壮、更易维护的Java代码。 使用B…

    2026年9月29日 • 用户投稿
    000
  • 我的世界迷路了怎么回家 迷路后回家的方法介绍

    我的世界迷路了怎么回家 迷路后回家的方法介绍我的世界迷路了怎么回家 迷路后回家的方法介绍我的世界迷路了怎么回家 迷路后回家的方法介绍我的世界迷路了怎么回家 迷路后回家的方法介绍

    在我的世界中迷失方向后,有三种实用的归家方法:可以通过沿途放置物品作为标记、利用指南针定位出生点,或使用指令 /tp @s [家的坐标] 直接传送。具体回家策略如下所示。 我的世界迷路后如何找到回家的路?方法如下: 一、借助道具定位: 制作地图以查看并记录周边环境,标记家所在位置;指南针通常指向世界…

    2026年9月29日 • 用户投稿
    000
  • 打破传统海景房局限,iGame C25A Vortex 涡流机箱革新上市

    打破传统海景房局限,iGame C25A Vortex 涡流机箱革新上市打破传统海景房局限,iGame C25A Vortex 涡流机箱革新上市打破传统海景房局限,iGame C25A Vortex 涡流机箱革新上市打破传统海景房局限,iGame C25A Vortex 涡流机箱革新上市

    七彩虹旗下高端硬件品牌 igame 正式发布全新机箱力作——igame c25a vortex 涡流机箱,以“我游自在 · 涡旋视界”为设计理念,标志着其diy硬件生态体系的进一步完善。自七彩虹推出 ultra family 全家桶以来,始终围绕 vulcan、ultra、meow 等显卡系列构建风…

    2026年9月29日 • 用户投稿
    100
  • 前端开发如何安装Sublime_Sublime前端环境搭建教程

    前端开发如何安装Sublime_Sublime前端环境搭建教程前端开发如何安装Sublime_Sublime前端环境搭建教程前端开发如何安装Sublime_Sublime前端环境搭建教程前端开发如何安装Sublime_Sublime前端环境搭建教程

    首先安装Sublime Text并配置Package Control插件管理器,接着安装Emmet、HTML-CSS-JS Prettify等前端插件,然后设置文件类型关联以正确识别.html、.css、.js文件语法,最后通过快捷键配置实现代码格式化功能。 如果您尝试在前端开发中使用 Sublim…

    2026年9月29日 • 用户投稿
    1700

发表回复

登录后才能评论
关注微信