【问题标题】:PHP find element keyPHP查找元素键
【发布时间】:2009-10-28 16:47:28
【问题描述】:

我有这个数组

Array
(
  [0] => a
  [1] => b
  [2] => c
  [3] => d
)

如何获取元素的键?(例如 a=0,c=2)

【问题讨论】:

    标签: php arrays key


    【解决方案1】:
    <?php
    $trans = array("a" => 1, "b" => 1, "c" => 2);
    $trans = array_flip($trans);
    print_r($trans);
    ?>
    

    http://www.php.net/manual/en/function.array-flip.php

    使用数组搜索 http://php.net/manual/en/function.array-search.php

    <?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;
    ?>
    

    【讨论】:

      【解决方案2】:

      使用array_search()

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

      示例 #1 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;
      ?>
      

      【讨论】:

      • 你应该被提名为世界上“最快的答案”:)
      【解决方案3】:

      如果要搜索,请参见array_search (http://www.php.net/manual/en/function.array-search.php)

      如果你在迭代它,你可以使用各种语法:

      foreach ($a as $key => $value) { ... }
      foreach (array_keys($a) as $key) { $value = $a[$key]; ... }
      

      【讨论】:

        【解决方案4】:

        如果您只想要密钥,请使用array_keys

        如果您想像示例中显示的那样翻转数组,请使用 array_flip

        【讨论】:

          【解决方案5】:

          array_keys:

          array_keys($arr, 'a');         # 0
          array_keys($arr, 'c');         # 2
          

          【讨论】:

            【解决方案6】:

            我个人喜欢@SilentGhost 的解决方案,但如果您进行多次搜索,速度会有所下降,此时您需要以下内容:

            // assume you know you want the value for key 'c'
            $array = ('a','b','c','d');
            $keys = array_flip($array);
            return $keys['c'];
            

            【讨论】:

              猜你喜欢
              • 2018-08-21
              • 2021-02-05
              • 2011-01-19
              • 2019-05-20
              • 1970-01-01
              • 2016-11-11
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多