获取任意元素中具有指定值的第一行二维数组中的一级键

问题描述 投票:0回答:2

在每行中的任意位置搜索值时,从二维数组获取父数组键的最佳方法是什么?

例如,我有这个数组:

array(
    [0] => array(0=> sample, 1=>picture, 2=>frame, 3=>google)
    [1] => array(0=> iphone, 1=>orange, 2=>love, 3=>msn)
    [2] => array(0=> joe, 1=>geee, 2=>panda, 3=>yahoo)
)

我需要搜索,例如,

google
并获取父数组键。

结果应该是

0

我为此使用了 for 循环,但我认为如果我有 700000 行的数组,它会很慢。

php arrays performance multidimensional-array filter
2个回答
10
投票

如果您有一个包含 700,000 行的数组,那么您几乎肯定做错了什么...我首先建议考虑使用不同的数据存储:平面文件或某种类型的数据库。


foreach($array as $key => $value) {
    if(in_array('google', $value)) return $key
}


5
投票

有 700,000 行的数组?有多少个数组? 9/10 次的问题是你的数据设置错误。

我将继续假设您正在进行某种搜索。由于您无法索引数组(在索引的search含义中),那么您最好将数据放入数据库并充分利用列索引来快速搜索。

根据上下文,您可能还想考虑将数据存储在文件中,每个数组一个,并使用文件搜索来查找哪个文件包含您的值。

© www.soinside.com 2019 - 2024. All rights reserved.