我想我搞砸了我的阵列设计。
当前看起来像这样:
[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
,我该怎么做?
答案 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;
}
}