2016-01-06 107 views
0

我想我搞亂了我的陣列設計。我的陣列設計應該如何?

它currenlty看起來像這樣:

[new york] => Array 
     (
      [id] => up 
      [cinemas] => Array 
       (
        [AMC Loews 34th Street 14] => Array 
         (
          [id] => 83 
          [lounges] => Array 
           (
            [FS 1] => 52 
            [FS 2] => 70 
           ) 
         ) 

        [AMC Newport Centre 11] => Array 
         (
          [id] => 159 
          [lounges] => Array 
           (
            [Royal 1] => 163 
            [Royal 2] => 71 
           ) 
         ) 

我以爲我是聰明的,當我整理像這樣。但似乎很難從數組中獲取數據。我將永遠有城市名稱,在這個ex new york。爲紐約提取id即可。

但是說例如我有id 83,並且想要取名AMC Loews 34th Street 14,我該怎麼做?

+0

同時建立您的陣列,您可以爲您將用於查找鍵查找數組。 – Fabricator

回答

0

我建議建立一個第二陣列作爲索引,拿着id S作爲鍵,這樣你就可以查找相應的名稱:

$lookup = array(83 => 'AMC Loews 34th Street 14', 
       159 => 'AMC Newport Centre 11'); 

然後你可以看一下這樣的:

$array[$city]['cinemas'][$lookup[$id]]; 

另一方面,你可能最好重新設計陣列。這取決於你的大部分閱讀內容。你通常有名字和城市或者ID號碼嗎? 另一種可能性是始終與一個循環來進行搜索,也許是這樣的:

foreach($array[$city]['cinemas'] as $name => $cin){ 
    if($name == $searchstring){ 
     $result = $cin['id']; 
     break; 
    } 
}