我以下列方式将数字存储在数组中:
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]是每个匹配需要增加的数字。有什么想法吗?
答案 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
}