Я выдергивал свои волосы на этом весь день.По сути, у меня есть длинная таблица значений (хранится в SQL), и я хочу просмотреть всю таблицу и подсчитать, сколько раз каждое значение отображается.Я назвал значения «pid» целыми числами.
Лучший способ, которым я подумал сделать это, - создать массив с PID в качестве ключа массива и количеством повторений каждого PID.в таблице как значение этого ключа.Затем просмотрите весь список и либо добавьте PID в массив, если он еще не существует, либо увеличьте значение щелчка, если оно уже существует.Цель состоит в том, чтобы выяснить, какой PID имеет наибольшее количество кликов.
Звучит просто, и это так!Я думаю, что у меня должна быть ошибка в моем синтаксисе где-то, потому что все кажется правильным.Я впервые работаю с массивами в PHP, так что будьте добры:)
Большое спасибо!
$tabulation = array();
while ($row = mysql_fetch_array($result)) {
$pid = $row[1];
//if this post isn't in the tabulation array, add it w a click value of 1
if ( !isset( $tabulation[$pid] ) ){ array_push( $tabulation[$pid], 1 ); }
//if this post is already in the tabulation array, incrment its click value by 1
else {
$t = $tabulation[$pid]; $t++; $tabulation[$pid] = $t;
}
}
$highestClicksValue = -1;
$highestClicksPID = -1;
foreach ($tabulation as $pid => $clicks){
if ($clicks > $highestClicksValue){ $highestClicksPID = $pid; }
printf("PID: ". $tabulation[$pid] . " clicks: " . $tabulation[$clicks] . "<br />");
}