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

时间:2012-07-11 10:51:07

标签: php arrays

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

我应该如何制作阵列以及如何阅读它?

1 个答案:

答案 0 :(得分:1)

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

$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],但我个人认为这更有意义如果数组结构为列的行(y s x s),就像数据库表一样。