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

时间:2014-03-03 08:51:49

标签: php variables counter

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

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

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

$instance1 
$instance2 

$instanceOne
$instanceTwo

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

2 个答案:

答案 0 :(得分:1)

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

$x=array();

然后:

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

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

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

注意我使用了这个而不是for循环DELIBERATELY。 PHP不区分列表和字典,而是你有这个可怕的数字索引字典!所以,如果你删除说第一件事(所以$ x [1]),你有一个列表,其中的条目为0,2,3,......

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

当从这样的名单中出现时要小心,因为那时某些指数不会存在。

答案 1 :(得分:0)

听起来你想拥有一系列计数器,每个计数器代表一个“主题”或某个测量值。这是一个简单的实现,使用字典,可能对您有用:

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
)