基于计数器 - PHP 动态创建许多变量



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

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

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

$instance1 
$instance2 

$instanceOne
$instanceTwo

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

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

$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的条目,.....

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

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

听起来你想要一系列计数器,每个计数器代表一个"主题"或某个度量。下面是一个使用字典的简单实现,可能对您有用:

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
)

最新更新