【问题标题】:PHP - change used variable in for loopPHP - 在 for 循环中更改使用的变量
【发布时间】:2018-01-05 22:31:59
【问题描述】:

我有以下问题:

我的脚本中有一些变量。 现在我想在 for 循环中处理它们,但不知道如何解决我的小问题。

我的想法是每次更改我的变量的编号(在名称中)。

这是我的脚本

<?php

$tropfenzahl = 2;

$v1_d1 = 10;
$v1_w2 = 20;
$v1_d2 = 30;
$v1_w3 = 40;

   for($i = 1; $i <= $tropfenzahl; $i++) {
      echo $v1_d1;
      echo $v1_w2;
   }
?>

下次我想回显 $v1_d2$v1_w3(增加一个数字)。

我认为解决方案很简单,但我现在不明白 =/

祝你愉快!

【问题讨论】:

  • @LawrenceCherone 我已经读过了,现在呢?
  • 你读过我的问题吗?我想下次得到其他两个变量的输出。我不认为它“像 php 中的第 1 课”
  • 感谢您的努力,但不幸的是您的想法没有得到正确的输出

标签: php variables for-loop web-project


【解决方案1】:

如果您不想遍历数组,但实际上出于某种原因确实需要遍历单独的变量,您可以将要使用的变量保留为字符串,然后使用双精度 $$ 访问它们:

$tropfenzahl = 4;

$v1_d1 = 10;
$v1_w2 = 20;
$v1_d2 = 30;
$v1_w3 = 40;

$d_variable = "v1_d1";
$w_variable = "v1_w2";

for($i = 1; $i <= $tropfenzahl; $i++) {
    echo $$d_variable;
    echo $$w_variable;

    $d_variable++;
    $w_variable++;
}

【讨论】:

  • 谢谢,这正是我想要的 =)
  • 如果这是实际代码,那么是的,当然 OP 应该只使用一个数组。但谁知道呢,这实际上可能是一个适合改变的 MCVE。真正的应用程序可能非常大,需要数周时间来重构以使用数组而不是单独的变量。
  • @LawrenceCherone 说实话,我实际上已经忘记了那个宝石 :-)
【解决方案2】:

使用数组。 http://php.net/manual/en/language.types.array.php

$tropfenzahl = 4;
$v1_d = [10, 30, 50, 70];
$v1_w = [20, 40, 60, 80];

for($i = 0; $i < $tropfenzahl; $i++) {
  echo $v1_d[$i];
  echo $v1_w[$i];
}

【讨论】:

  • 感谢您的努力,但@rickdenhaan 的解决方案对我来说是最好的,因为我将所有内容都放在单独的变量中(我有一堆)或者更好地使用数组(更快例子)?
  • 如果你有两行数字,最好使用数组而不是最后有几个不同数字的变量。数组更清晰,记住每个变量占用一些空间也很重要。
  • 我明白你的意思,但问题是,我得到像$v1_x_d1 = $_GET['v1_d1']; $v1_d1 = $v1_x_d1 * 1000; 这样的值,所以我将它们存储在变量中。我必须看看如何将它们放入一个数组中,然后像示例中那样将它们乘以 1000。
  • 非常感谢,感谢您的帮助。祝你周末愉快,并祝德国致以最良好的祝愿 =)
【解决方案3】:

如果你只是回显一系列数字,我不明白你为什么不简单地做:

echo implode(range(10, 40, 10));

https://3v4l.org/lquQQ

如果您有任意一组要循环的变量,请使用compact() 函数将它们放入数组中。

<?php
$v1_d1 = 10;
$v1_w2 = 20;
$v1_d2 = 30;
$v1_w3 = 40;

foreach (compact('v1_d1', 'v1_w2', 'v1_d2', 'v1_w3') as $var) {
    echo $var;
}

https://3v4l.org/1dYIY

【讨论】:

  • 很抱歉让您感到困惑!我的意图不是重复这些数字,这仅用于示例。我的代码正在处理数字并控制电子水阀(它正在打开和关闭它)数字是打开时间和延迟(还有更多数字,我只展示了其中的 4 个 =)感谢您的时间和我祝你周末愉快 =)
【解决方案4】:

你看错了。不妨试试这个

<?php

$tropfenzahl = 4;

$myArray = array(10,20,30,40);

foreach ($myArray  as $numbers) {
    if ($tropfenzahl == 4) {
        # do something
    }else{
        # Do something else
    }
}

?>

如果你想循环波谷数字,它们需要在一个数组中

【讨论】:

  • 感谢您的努力,但@rickdenhaan 的解决方案对我来说是最好的,因为我将所有内容都放在单独的变量中(我有一堆)或者更好地使用数组(更快例子)?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-04
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多