0

我正在编写 PHP 脚本,它将用时间戳将鼠标位置存储在页面上。它将用于生成简单的热图。我有 X 和 Y 坐标的 MySQL 数据库,我想,我会做一个数组,我会用它来添加光标在特定像素上的出现次数。它会像这样工作:我从数据库中读取数据,例如四个记录 (x/y) 10/9,8/7,2/10,10/9 我将在数组中的每个坐标上放置 1,最后一个点已经在数组中,所以它会将 2 放在 x=10/y=9 上,因为鼠标在该像素上的总数。

我应该如何制作数组以及如何读取它?

4

1 回答 1

1

首先,您需要创建一个空矩阵,其中定义了整个网格并用零填充:

$width = 10;
$height = 10;

$matrix = array_fill(1, $height, array_fill(1, $width, 0));

现在您只需遍历 MySQL 结果并在每次点击时递增每个关联点。在此示例中,我假设您的 x 和 y 列仅称为xand y

while ($row = mysql_fetch_assoc($queryResult)) {
  $matrix[$row['y']][$row['x']]++;
}

现在,如果您想获得 eg 的点的命中数x = 1, y = 8,您只需执行以下操作:

$hits = $matrix[8][1];

您可以在外部级别交换级别,x以便可以引用它们$matrix[$x][$y]而不是$matrix[$y][$x]如果您愿意,但我个人认为如果数组像数据库表一样构造为列的行( ys of s)更有意义x.

于 2012-07-11T11:25:52.747 回答