PHP数组增量

时间:2013-07-15 08:36:54

标签: php arrays search match

我以下列方式将数字存储在数组中:
467:0
其中467是数字,0是出现次数
我正在做的是从数据库中获取一堆数字,然后我查找出现多于一次的数字,如果它们确实增加了出现次数。

$numberCount = explode(':', $this->_presentationArr);

    if(in_array($numberprefix  . ':' . preg_match('/^\d+$/', $numberCount[1]), $this->_presentationArr))
    {

        $pos = array_search($numberprefix  . ':' . preg_match('/^\d+$/', $numberCount[1]), $this->_presentationArr);
        $tmpArr = explode(':', $this->_presentationArr[$pos]);
        $tmpArr[1]++; # this does not work


    }


$ tmpArr [1]是每个匹配需要增加的数字。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我认为你过于复杂。 php数组与C中的数组略有不同,它们的行为更像地图。这意味着您只需插入密钥而无需担心以前的密钥是否确实存在。这意味着您可以轻松快速地创建频率图,如下所示:

$occurrencearray = array()
// this next line is pseudocode
while ($fetched = fetchnumber()) {
    $occurrencearray[$fetched]++;
}
// once all numbers loaded you can iterate over your occurrence map
foreach ($occurrencearray as $key => $value) {
    printf("Number %d occurs %d times",$key,$value);
    // or of course reconvert it to "key:value" strings for storing
}