从数组浮点数中选择最小值(最低)或最大值(最大值)
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 已清理完毕。以上是关于从数组浮点数中选择最小值(最低)或最大值(最大值)的主要内容,如果未能解决你的问题,请参考以下文章