如何创建可通过X和Y坐标访问的数组


How to create array accessible by X and Y coordinates?

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

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

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

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

现在,您只需迭代MySQL结果,并在每次到达时递增每个关联点。在本例中,我假设您的x和y列仅称为xy

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

现在,如果你想获得点的点击次数,例如x = 1, y = 8,你只需:

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

您可以将级别四舍五入,使x位于外部级别,这样如果您愿意,它们可以被引用为$matrix[$x][$y]而不是$matrix[$y][$x],但我个人认为,如果数组像数据库表一样被构造为列的行(xy s),则会更有意义。