Php jQuery-数组中的最高值-但低于x
我的问题是,我有一个带有数字的数组,我想得到低于例如6的最高数字 如果我有这样一个数组:Php jQuery-数组中的最高值-但低于x,php,jquery,arrays,Php,Jquery,Arrays,我的问题是,我有一个带有数字的数组,我想得到低于例如6的最高数字 如果我有这样一个数组: str = "<?php echo $timings;?>" res = str.split(","); res.sort(function(a, b){return b-a}); alert(res); var a = res.split(/[,\s]+/); 10,5,19,2,1,32,3 我只想要5号 我尝试将数组从高到低排序,如下所示: str = "<?php echo $
str = "<?php echo $timings;?>"
res = str.split(",");
res.sort(function(a, b){return b-a});
alert(res);
var a = res.split(/[,\s]+/);
10,5,19,2,1,32,3
我只想要5号
我尝试将数组从高到低排序,如下所示:
str = "<?php echo $timings;?>"
res = str.split(",");
res.sort(function(a, b){return b-a});
alert(res);
var a = res.split(/[,\s]+/);
str=“”
res=str.split(“,”);
res.sort(函数(a,b){返回b-a});
警报(res);
但是我从来没有想出一种方法来获得小于x的第一个值。您已经展示了:
res = "<?php echo $timings;?>"
res.sort(function(a, b){return b-a});
…然后第一步是将该字符串转换为数组,您可以这样做:
str = "<?php echo $timings;?>"
res = str.split(",");
res.sort(function(a, b){return b-a});
alert(res);
var a = res.split(/[,\s]+/);
然后,只需在阵列中循环并查看:
var lowest;
a.forEach(function(num) {
if (num < 6 && (lowest === undefined || lowest > num)) {
lowest = num;
}
});
如果您从PHP获取数据,为什么不返回值而不是数组 可以首先删除大于X的数组元素:
$filtered=array\u filter($times,function($x){return$x<$y;})代码>
现在剩下一个数组,其中包含小于或等于x的元素
现在只需获取最大值:
$max=max($filtered)代码>首先,您需要使用.split(/[,\s]+/)
将类似字符串的数组转换为真实数组
然后您可以使用Math.max
和Array.prototype.filter
像这样:
var res = "<?php echo $timings;?>".split(/[,\s]+/);
var num = Math.max.apply(null,res.filter(function(x){
return x < 6
}));
var res=”“.split(/[,\s]+/);
var num=Math.max.apply(null,res.filter(函数x){
返回x<6
}));
基本上,上面所做的是使用.filter()
查找所有小于6的数字,然后使用Math从返回的数组中获取最大的数字。max
是否可能存在重复的数字?您不需要jQuery来实现这一点。普通JS很好。你需要排序吗?或者这只是你查找数字的方法吗?你不能在PHP数组上执行.sort
。您需要要么使用AJAX,要么在PHP端对其进行排序,然后获取最大值并返回最大值。看我的答案。为什么我被否决了?OP显然是从PHP获取数组,你不能只将JS函数应用到包含PHP数组的变量上?这将在JS数组上起作用,如果你看一个问题,数组是从PHP返回的,而这在PHP上不起作用。这个问题真的不清楚。为了解决这个问题,我做了一些更新。这在当前的场景中不起作用。这适用于JS数组,但返回的数据是来自PHP的数组。您从未将g
与split
@T.J.Crowder一起使用,我不知道。谢谢