【问题标题】:Creating a number of variables dynamically based on a counter - PHP基于计数器动态创建多个变量 - PHP
【发布时间】:2023-03-10 11:11:01
【问题描述】:

我有一个计数器,它给出了我在文档中找到短语的次数。现在我需要为每个变量创建一个变量,例如:

//Counter
$fstNameCtr = 0;
do {    
    $fstNameCtr = $fstNameCtr + 1;
} while ($firstNameRange->Execute($objFstName));
echo '$fstNameCtr';

结果返回了 2 个短语实例,我正在寻找,现在我想根据计数器中的数字为每个实例动态创建一个变量,如下所示:

$instance1 
$instance2 

$instanceOne
$instanceTwo

任何帮助将不胜感激,谢谢。

【问题讨论】:

    标签: php variables counter


    【解决方案1】:

    这通常是一个列表,使用:

    $x=array();
    

    然后:

    $x[]=$newThing; //"append"
    

    您可以使用print_r 打印它,因为它是一个“列表”

    $i = 0;
    while($i != count($x)) {
        echo($i.": ".$x[$i]);
        $i++;
    } 
    

    注意,我故意使用了这个而不是 for 循环。 PHP 不区分列表和字典,相反,你有这个可怕的数字索引字典!因此,如果您删除说第一件事(所以 $x[1]),您将获得一个列表,其中包含 0、2、3、.....

    我用它来表明我将数组视为一个列表,当我想要键值对(或只是值)时使用它

    从此类列表中弹出时要小心,因为这样某些索引将不存在。

    【讨论】:

      【解决方案2】:

      听起来您希望拥有一系列计数器,每个计数器代表一个“主题”或特定度量。这是一个使用字典的简单实现,可能对您有用:

      function increment(&$counters, $key) {
          if (array_key_exists($key, $counters)) {
              $counters[$key]++;
          } else {
              $counters[$key] = 1;
          }
      }
      

      这可以与这样的计数器数组一起使用:

      $counters = array();
      $phrase = "foo bar foo";
      foreach (explode(" ", $phrase) as $word) {
          increment($counters, $word);
      }
      print_r($counters);
      

      上面的代码会输出:

      Array
      (
          [foo] => 2
          [bar] => 1
      )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-14
        • 1970-01-01
        • 1970-01-01
        • 2019-07-01
        相关资源
        最近更新 更多