【问题标题】:Retrieve array key passed on value PHP检索传递给值 PHP 的数组键
【发布时间】:2010-06-05 20:29:55
【问题描述】:

我有以下数组

$group= array(
    [0] => 'apple',
    [1] => 'orange',
    [2] => 'gorilla'
);

我通过一个 for each 函数运行数组组,当循环命中 gorilla 的值时,我希望它吐出 gorilla 的索引

foreach ($group as $key) {

    if ($key == gorilla){
        echo   //<------ the index of gorilla
    }

}

【问题讨论】:

    标签: php arrays loops


    【解决方案1】:

    您可以使用array_search函数获取指定值的key:

    $key = array_search('gorilla', $group);
    

    【讨论】:

    • @Pekka:你忘记了,但几天前你已经为一个问题提供了这个功能:)
    • 是的,我专注于“如何在循环中获取当前键”方面:)
    【解决方案2】:
    foreach( $group as $index => $value) {
    
    if ($value == "gorilla")
     {
      echo "The index is: $index";
     }
    
    }
    

    【讨论】:

    • 虽然这是正确的,但我认为这里使用“key”这个词肯定是错误的。索引不链接到键,它们链接到值..
    • @Matt 完全是,我只是不假思索地复制了变量名。更正了,干杯。
    【解决方案3】:

    array_search — 在数组中搜索给定的值,如果成功则返回相应的键

    <?php
    $array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
    
    $key = array_search('green', $array); // $key = 2;
    $key = array_search('red', $array);   // $key = 1;
    ?>
    

    【讨论】:

      【解决方案4】:
      foreach($group as $key => $value) {
          if ($value=='gorilla') {
              echo $key;
          }
      }
      

      foreach($c as $k =&gt; $v) 语法类似于 foreach($c as $v) 语法,但它将集合中每个值 $v 的相应键/索引放在 $k(或任何放置在那里的变量)中。

      但是,如果您只是寻找单个值的索引,array_search() 可能更简单。如果您要查找多个值的索引,请坚持使用 foreach

      【讨论】:

        【解决方案5】:

        试试这个:

        foreach ($group as $key => $value)
        {
            echo "$key points to $value";
        }
        

        foreach documentation on php.net

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-01-12
          • 1970-01-01
          • 2012-08-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多