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

Php 如何创建可通过X和Y坐标访问的数组?,php,arrays,Php,Arrays,我正在编写PHP脚本,它将鼠标位置存储在带有时间戳的页面上。它将用于生成简单的热图。 我有一个关于X&Y坐标的MySQL数据库,我想我会做一个数组,我会用它来增加光标在特定像素上的出现次数。 它的工作原理如下: 我从数据库中读取数据,例如四次录音(x/y)10/9、8/7、2/10、10/9 我将在数组中的每个坐标上放置1,最后一个点已经在数组中,因此它将在x=10/y=9上放置2,作为鼠标在该像素上的总计数 我应该如何创建数组以及如何读取它?首先,您需要创建一个空矩阵,在其中定义整个网格并用零

我正在编写PHP脚本,它将鼠标位置存储在带有时间戳的页面上。它将用于生成简单的热图。 我有一个关于X&Y坐标的MySQL数据库,我想我会做一个数组,我会用它来增加光标在特定像素上的出现次数。 它的工作原理如下: 我从数据库中读取数据,例如四次录音(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列被称为
x
y

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 of
x
s),这会更有意义就像一个数据库表。

看起来你对你想要的东西有了一个想法,但是你尝试了什么?阵列的模式似乎已准备就绪writing@geoPhoenix我的问题是,我对数组的使用非常糟糕。我尝试过这种方法:$arr=array(array(2,10,9)、array(1,8,7)、array(1,2,10));但是如何检查特定X和Y的值+如何在以后更改坐标值。正如我所写的,在数组方面,我是绝对的noob。谢谢!这正是我想要达到的,不用担心。这并不是说它真的有足够的区别,而是我刚刚意识到嵌套的
数组_fill()
可以在没有循环的情况下更有效地填充初始
$matrix
的两个级别,我相应地编辑了我的示例。