在数组中搜索数组的最佳方法 - 堆叠数组

时间:2017-04-10 23:01:57

标签: php mysql arrays performance comparison

目前我正在编写一个脚本,该脚本具有分配功能,用于检查所有产品是否仍保留在数据库中。因为我有+5000个产品,所以我想尽可能优化编写脚本。

这也是我将整个(+5000)数据库表加载到本地数组的原因。因为我认为在本地数组中搜索比在每个产品中执行大约5个sql查询更清晰,更快速。我已经解决了每个产品中有3个查询中的3个。但是目前我已经赶上了第四次询问。

此查询的目标是查找指定的产品是否仍保留在数据库表中。我已将数据库表加载到本地数组中,如下所示:

array(5419) {
  [1]=>
  array(4) {
    ["name"]=>
    string(17) "Final Fantasy VII"
    ["price"]=>
    string(5) "11.69"
    ["shop"]=>
    string(4) "9507"
    ["url"]=>
    string(77) "https://de.gamesplanet.com/game/..."
  }
  [2]=>

密钥12代表MySQL数据库的Auto Increment ID。我在阵列中不需要它们,但我不知道如何更好地解决它。但是现在产生的效果是我在数组中有一个数组......

现在是我的问题。我想检查一下,例如如果游戏Final Fantasy VII仍然在阵列中。但是一个游戏例如Final Fantasy VII有多个价格,商店和网址条目,因为我正在编制游戏价格比较。所以,我被迫在阵列中打包一个阵列,因为每个游戏都有自己的不同价格,商店和网址...

但也许我可以省略Auto Increment ID。这是一种搜索产品的方式吗? (我没有Auto Increment ID来搜索产品......所以,这只会扩展我的搜索...)

array(5419) {
      array(4) {
        ["name"]=>
        string(17) "Final Fantasy VII"
        ["price"]=>
        string(5) "11.69"
        ["shop"]=>
        string(4) "9507"
        ["url"]=>
        string(77) "https://de.gamesplanet.com/game/..."
      }
      array(4)...

反正。我需要一种方法来检查基于价格,商店和网址的游戏是否仍然包含在我的阵列中。但我认为这不是遍历所有Auto Increment ID的最佳方式,而是通过内部数组再次迭代,并检查网址,价格,商店和名称是否与我的实际产品相匹配......

有没有人知道如何检查我的产品,基于名称,价格,网址和商店,是否仍然保留在(数组)数组中而不循环浏览所有产品,还是有更好的方法呢?

我会非常感谢答案和帮助!

问候,谢谢!

0 个答案:

没有答案