如何获取数组中所请求项的键



这是我用来查找数组中请求项的键的方法,

$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'])) ...

相关内容

  • 没有找到相关文章