大型PHP数组在MySQL搜索中执行不当

大型PHP数组在MySQL搜索中执行不当,php,mysql,Php,Mysql,我有一个表示地图的格子。当我选择某个瓷砖时,我会创建一个数组,而不是选定瓷砖给定距离内所有瓷砖的矩阵。每个磁贴由一个包含x和y坐标的5个字符的字符串表示。因此,与平铺['02-02']距离为1的数组看起来像['01-01'、'01-02'、'01-03'、'02-01'等等……] 在获得该数组之后,我搜索MySQL数据库,以查找属于搜索数组的行。因此,在上面的示例中,如果一个对象落在01-01,另一个对象落在03-03,搜索将返回两个对象的行 所有这些对于相对较小的距离都非常有效。我可以毫无问题

我有一个表示地图的格子。当我选择某个瓷砖时,我会创建一个数组,而不是选定瓷砖给定距离内所有瓷砖的矩阵。每个磁贴由一个包含x和y坐标的5个字符的字符串表示。因此,与平铺['02-02']距离为1的数组看起来像['01-01'、'01-02'、'01-03'、'02-01'等等……]

在获得该数组之后,我搜索MySQL数据库,以查找属于搜索数组的行。因此,在上面的示例中,如果一个对象落在01-01,另一个对象落在03-03,搜索将返回两个对象的行

所有这些对于相对较小的距离都非常有效。我可以毫无问题地在10到100之间搜索。但随着距离的增加,我开始得到奇怪的结果。我的脚本运行多个搜索。在100到250之间的距离上,前两个MySQL查询运行良好,但后面的查询根本不返回任何内容。超过250左右,我得到了一个致命的错误,我已经超过了PHP最大内存分配

扩展PHP可用的内存是一个简单的修复方法,我可以自己处理。我想找出是什么导致了100到250之间的误差。当我开始调试时,我试着将我的搜索数组打印到浏览器上,以找出其中的内容。当脚本执行时,搜索数组将短暂打印。。。然后在下一个阵列打印时从浏览器中消失。脚本结束时,即使打印的最终数组也会消失。我不知道有什么会导致PHP将HTML打印到浏览器,然后在客户端删除它。这太奇怪了

[编辑:过了一段时间,打印的数组出现了。我认为这只是浏览器内存问题,但它没有说明为什么MySQL查询没有打印适当的对象。]

我也不确定是什么原因导致搜索数组在前几次搜索中工作正常,然后在脚本中稍后返回任何对象时失败


我想我的问题有两个方面。首先,在我的理解行为中,是什么导致了这种奇怪的行为?它能被修复吗?第二,有人能建议一种更好的方法来实现相同的功能并从一开始就避免这个问题吗?

一些代码和/或SQL查询如何?我想现在我已经掌握了正在打印的实际阵列,我可能已经发现了问题。这与内存使用无关,这正是我最初怀疑的。如果这不是问题所在,我将删除这个问题。