php - 获取数组中最小的变量
问题描述
我需要在 5 个变量的值中取最小值。
我希望如果变量未设置或为空,脚本必须从结果中排除此变量。
$var1='17';
$var2='19';
$var3='20';
$var4='1';
$var5='';
$arr = compact('var1','var2','var3','var4','var5'); // Stores values in array $arr
$highval = max($arr);
$lowval = min($arr);
$stores=count(array_filter($arr));
echo 'Item is available in '.$stores.' vars and is between '.$lowval.' and '.$highval.'';
例如分配$var4=''
,最低值将是$var1
而不是$var4
。也可以有多个变量未设置或为空。
您将如何编辑上面的脚本来完成它?
解决方案
如果您array_filter
用于显示计数,那么您可以在 min/max 之前使用它。代码应如下所示:
<?php
$var1 = '17';
$var2 = '19';
$var3 = '20';
$var4 = '1';
$var5 = '';
$arr = compact('var1', 'var2', 'var3', 'var4', 'var5'); // Stores values in array $arr
$filtered = array_filter($arr);
$highval = max($filtered);
$lowval = min($filtered);
$stores = count($filtered);
echo 'Item is available in ' . $stores . ' vars and is between ' . $lowval . ' and ' . $highval . '';
更新
如果你把数字数组写成这样会更好:
$arr = ['17', '19', '20', '1', ''];
$filtered = array_filter($arr);
$highval = max($filtered);
$lowval = min($filtered);
$stores = count($filtered);
echo 'Item is available in ' . $stores . ' vars and is between ' . $lowval . ' and ' . $highval . '';
推荐阅读
- java - 尽管训练误差为 0.0,但经过训练的 SVM 只输出 1.0
- reactjs - Gatsby - 将组件放入组件中以制作模板
- javascript - Npm CLI 全局变量
- r - R闭包不能访问闭包内的变量
- excel - VBA - 如果行隐藏在下面,则求和
- python - 如何在数据库中查找重复项以及如何执行响应?
- r - 在 R Blogdown 中使用 serve_site 生成器 $render 时出错
- listview - Flutter 在 ListView 中仅重建一行
- python - Pickle 不会从包含对象引用的文件中加载字典
- php - 无法以正确的方式获取日期