我的阵列设计应该如何?

时间:2016-01-06 20:16:53

标签: php arrays

我想我搞砸了我的阵列设计。

当前看起来像这样:

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

当我按照这样排序时,我觉得我很聪明。但似乎很难从阵列中获取数据。在此前new york中,我将始终拥有城市名称。为纽约取得id一切正常。

但是说,例如我有id 83,并且想要获取名称AMC Loews 34th Street 14,我该怎么做?

1 个答案:

答案 0 :(得分:0)

我建议将第二个数组构建为索引,将id作为键,这样您就可以查找相应的名称:

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

然后你可以这样看:

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

另一方面,你可能最好重新设计阵列。这取决于您的大多数读取包含的内容。你通常有姓名和城市,或者更确切地说是身份证号码吗? 另一种可能性总是用循环搜索,也许是这样:

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