Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我的阵列设计应该是什么样子?_Php_Arrays - Fatal编程技术网

Php 我的阵列设计应该是什么样子?

Php 我的阵列设计应该是什么样子?,php,arrays,Php,Arrays,我想我把我的阵列设计搞砸了 现在看起来是这样的: [new york] => Array ( [id] => up [cinemas] => Array ( [AMC Loews 34th Street 14] => Array (

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

现在看起来是这样的:

 [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,想获取name
AMC Loews 34街14
,我该怎么做呢?

我建议构建第二个数组作为索引,将
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;
    }
}
另一方面,您最好一起重新设计阵列。这取决于你阅读的大部分内容。你通常有名字和城市,或者更确切地说是身份证号码吗? 另一种可能是始终使用循环进行搜索,可能如下所示:

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

在构建数组时,可以为用于查找的键创建查找数组。