【问题标题】:PHP if statements for numbers/digits greater than/less than大于/小于数字/数字的 PHP if 语句
【发布时间】:2013-12-03 08:05:29
【问题描述】:

我有一个小谜题正在尝试解决,但还没有快乐。我想让一组 ifelse 语句过滤一个数字变量。有点像这样。

如果资产大于 1500000,则使用现有数字将值降低到最大 6 位数字。

如果资产小于 599999,则使用现有数字将值设为最大 6 位数。

如果资产在 599999 和 1500000 之间,则不理会变量并让它通过。

if ($assets > 1500000) {
  $assets_calc = preg_match_all('/(\d{6})/', $assets_array, $matches);
} 
elseif ($assets < 599999) {
  $assets_calc = preg_match_all('/someregex here/', $assets_array, $matches);           
} else {            
  $assets = $assets          
}

不确定这是否可能。

【问题讨论】:

  • 资产??什么样的资产? $assets 是数组、字符串还是整数?
  • 你能给我们举个例子吗?值是 1500001 - 你想得到什么数字?如果是 599998?
  • @w0rldart - 很明显他指的是代码中的 $assets 变量。而且由于他将其与数字进行比较,因此它必须是一个数字(或带有数字的字符串,对于 PHP 来说无关紧要)。
  • 你想得到字符串结果还是整数结果
  • $assets 是我从 CSV 文件中提取的字符串。对不起,我不够清楚。如果字符串小于 6 位,我想在其中添加一个数字,使其再次成为 6 位数字。如果数字超过 6 位,我想删除一个数字,使其变为 6。

标签: php math preg-replace preg-match digits


【解决方案1】:

不确定这是否能回答您的问题,但您是否希望简单地截断数组中每个值的数字?

if ($assets > 1500000)
{
    foreach($assets_array as $k=>$v)
    {
        $assets_calc[$k] = (int)substr((string)$v, 0, 6);
    }
}
// implement substring() in rest of code here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-11
    • 1970-01-01
    • 1970-01-01
    • 2020-11-05
    • 2014-08-18
    • 1970-01-01
    相关资源
    最近更新 更多