从数组中减去只是删除前2个字符?

时间:2019-02-02 19:02:02

标签: php

我在尝试从数字中减去1时遇到问题。此数字存储在数组中。该阵列由通过读取文本文件中的一行,分裂就形成了“|”然后将其存储到数组中。

文本文件如下所示: 100 | 2

这是我的代码:

function remove1($key, $privorno=0) {
  $actualFile = file_get_contents("users/" . $key . ".txt");
  $numtoremove = explode('|', $actualFile);

  if($privorno == 1) {
    file_put_contents("users/" . $key . ".txt", $numtoremove[0] . "|" . $numtoremove[1] - 1);
  } else {
    file_put_contents("users/" . $key . ".txt", $numtoremove[0] - 1 . "|" . $numtoremove[1]);
  }

执行此操作后,文本文件仅保留为“ 100”(即删除2和“ |”)

任何帮助都会很棒。谢谢!

1 个答案:

答案 0 :(得分:0)

我很惊讶,您的文件中有100个。于是我穿上了简化再生3v4l。为你,如果分支它打印99(不是100),但它似乎除去|2

这可以通过操作者的优先级在PHP解释(manual)。 .-具有相同的优先级,并且它们是左关联。这意味着首先创建字符串100|2,然后PHP尝试减去1,结果应为99。

正如我所说,我不知道为什么会得到100,但是也许可以通过在正确的位置添加括号来使程序按预期工作:

file_put_contents("users/" . $key . ".txt", $numtoremove[0] . "|" . ($numtoremove[1] - 1));