2010-05-05 50 views
4

使用多維數組獲取父數組鍵的最佳方式是什麼? 比如我有此數組:使用php獲取多維數組中的父數組鍵的最快方法

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) 
) 

現在我需要尋找例如谷歌和獲取父陣列鍵.. 它應該是0 ...任何想法?我用於循環,但我認爲這將是緩慢的,如果我有700000行陣列。

+0

是的,它會慢,無論如何。你必須考慮你的數據大小,而不是最快的方法來挖掘這個數量 – 2010-05-05 19:42:09

回答

7

如果你有一個包含700,000行的數組,你幾乎肯定會做錯事情......我首先會考慮使用不同的數據存儲:平面文件或某種類型的數據庫。

 

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

700,000行的數組?多少個數組? 9/10次的問題是你的數據設置錯誤。

我打算繼續並假設您正在進行某種搜索。由於您無法爲數組建立索引(在搜索索引的含義中),那麼您可能最好將數據放入數據庫,並充分利用列索引進行快速搜索。

根據上下文的不同,您可能想要考慮將數據存儲在文件中,每個數組一個,並使用文件搜索來查找哪個文件包含您的值。

+0

我非常同意,SQL/MySQL中的一個索引表比這個大小的數組更好。 – JYelton 2010-05-05 19:42:13

+0

我不想使用數據庫(由於某些原因)。 我想快速和骯髒的解決方案。 – SolidSnake 2010-05-05 19:54:30

+2

如果您反覆執行任務,數據庫可能是最快的解決方案。真的很快又髒?使用電子表格。 – 2010-05-05 20:08:04