0

我有一个特殊的情况,我需要将变量分成两部分 [sign] 和 [number]

所以我可以有以下整数(这不是一个序列,我一次只能有 1 个整数):

-15,...,-1,0,1,...,15

当有减号时,我需要将其拆分为 [-] 部分和 [integer] 部分,当没有符号时,我需要 [+] 和 [integer]

我该怎么做?

我正在考虑将explode与explode(“-”一起使用,但如果没有减号它会给出错误......任何简单的方法来实现我想要的而不是编写多个if函数?

4

2 回答 2

1
$ints = '-1,2,-3,4,-5,6';
$signed_ints = explode(',', $ints);
foreach ($signed_ints as &$int) {
  if (intval($int) >= 0) {
    $int = '+' . $int;
  }
}
于 2012-12-15T18:39:13.480 回答
1

对于单个integer,您可以执行以下操作:

$singlevalue = -15;

$singlesplit = array('value' => abs($singlevalue));
if($singlevalue < 0)
    $singlesplit['sign'] = '-';
else
    $singlesplit['sign'] = '+';

print_r($singlesplit);

这给出了输出:

Array
(
    [value] => 15
    [sign] => -
)

如果要删除值的符号,此处的abs很重要。

此外,如果您将值作为字符串接收,只需使用intval

$singlevalue = intval($stringValue);
于 2012-12-15T18:42:55.470 回答