从数组浮点数中选择最小值(最低)或最大值(最大值)

Posted

技术标签:

【中文标题】从数组浮点数中选择最小值(最低)或最大值(最大值)【英文标题】:select min (lowest) or max (bigest) from array float number 【发布时间】:2019-07-31 01:08:20 【问题描述】:

晕人。

可以从数组浮点数中选择最小(最低)或最大(最大)吗?

我尝试了 min(array) 和 max(array) 但不起作用? 我在手册上找不到。

你能帮帮我吗?

数组来自sql

Array ( [0] => 1.11954 ) Array ( [0] => 1.11983 ) Array ( [0] => 1.11854 ) Array ( [0] => 1.11978 ) Array ( [0] => 1.1198 ) Array ( [0] => 1.12024 ) Array ( [0] => 1.11994 ) Array ( [0] => 1.12055 ) Array ( [0] => 1.12106 ) Array ( [0] => 1.12186 ) Array ( [0] => 1.12191 ) Array ( [0] => 1.1214 ) Array ( [0] => 1.12432 ) Array ( [0] => 1.12398 )
 for ($list = 1; $list <= $rezult; $list++)
    
     $_array=array($rekord['xxx'])
    
print_r($_array);
$_min=min($_array);
$_max=max($_array);

【问题讨论】:

print_r($_array); 上打印的内容是什么? print_r($_array) 是浮点数 【参考方案1】:

您的问题是您的数组是数组数组,而不是浮点数数组,因此要找到最小/最大值,您实际上需要展平数组,您可以使用array_column

$flat = array_column($array, 0);
echo min($flat), " ", max($flat);

输出:

1.11854 1.12432

Demo on 3v4l.org

或者,您可以重新编码循环以将值而不是数组推入其中:

for ($list = 1; $list <= $rezult; $list++) 
     $_array[] = $rekord['xxx']

echo min($_array) . " " . max($_array);

【讨论】:

@dervil,是的,刚刚更仔细地查看了您的代码,并且您每次都通过循环覆盖数组,而不是将新值推入其中。我认为您真正想做的是我在刚刚进行的编辑中添加的代码。 是的,我忘记了这个 [] ,添加后必须使用 array_column 而不仅仅是数组,谢谢 @mickmackusa 已清理完毕。

以上是关于从数组浮点数中选择最小值(最低)或最大值(最大值)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PHP 中的键 => 值对数组中获取最小值、最大值和平均值?

IEEE754浮点数表示法中阶码的范围是多少?

从两个表中选择最大值、最小值

使用 AVX 的有符号/无符号整数的最小值

Java中浮点数的最大值?

如何在SQL中查询最大值与最小值