Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php jQuery-数组中的最高值-但低于x_Php_Jquery_Arrays - Fatal编程技术网

Php jQuery-数组中的最高值-但低于x

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 $

我的问题是,我有一个带有数字的数组,我想得到低于例如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 $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一起使用,我不知道。谢谢