这是我用来查找数组中请求项的键的方法,
$items = array
(
'0' => array
(
'mnu_id' => '1',
'pg_url' => 'home'
),
'1' => array
(
'mnu_id' => '5',
'pg_url' => 'about'
),
'2' => array
(
'mnu_id' => '6',
'pg_url' => 'venues'
)
);
如果我请求'场馆'的值,
while ($current = current($items))
{
if ($current['pg_url'] == 'venues') {
$current_key = key($items);
}
next($items);
}
echo $current_key;
我得到的键值是2
我真的不喜欢这个方法,因为它有点长,当使用while()
来循环数组时,它会让我感到困惑。我不明白为什么我也要在代码中使用next()
!
我想知道是否有比这更好的方法来获得密钥?
foreach (array_keys($items) as $key) {
if ($items[$key]['pg_url'] == 'venues') {
$current_key = $key;
// optionally use a break here to escape the loop
}
}
也许这样更容易理解:
$current_key = -1;
foreach($items as $key => $item) {
if($item['pg_url'] == 'venues') {
$current_key = $key;
}
}
我不知道,你到底想做什么,但似乎你想从数组中检索信息取决于pg_url…如果是这样,也许将pg_url设置为key:
会更好。$items = array
(
'home' => array
(
'mnu_id' => '1'
),
'about' => array
(
'mnu_id' => '5'
),
'venues' => array
(
'mnu_id' => '6'
)
);
那么你可以简单地检查
if(isset($items['venues'])) ...