代码之家  ›  专栏  ›  技术社区  ›  Mazatec

如何从数字索引中获取关联数组键?

  •  63
  • Mazatec  · 技术社区  · 15 年前

    如果我有:

    $array = array( 'one' =>'value', 'two' => 'value2' );
    

    怎么弄到绳子 one 从回来 $array[1] ?

    8 回复  |  直到 10 年前
        1
  •  101
  •   deceze    15 年前

    你没有。你的数组没有键 [1] . 你可以:

    • 创建一个包含键的新数组:

      $newArray = array_keys($array);
      echo $newArray[0];
      

      但是“一”的价值是 $newArray[0] 不是 〔1〕 .
      快捷方式是:

      echo current(array_keys($array));
      
    • 获取数组的第一个键:

       reset($array);
       echo key($array);
      
    • 获取与值“value”对应的键:

      echo array_search('value', $array);
      

    这完全取决于你到底想做什么。事实是, 〔1〕 不符合“一”的任何方式,你转它。

        2
  •  51
  •   Martin Tournoij ravi.zombie    10 年前
    $array = array( 'one' =>'value', 'two' => 'value2' );
    
    $allKeys = array_keys($array);
    echo $allKeys[0];
    

    将输出:

    one
    
        3
  •  16
  •   StarCrashr    11 年前

    如果您只计划使用一个键,那么您可以使用一行来完成此操作,而无需为所有键存储一个数组:

    echo array_keys($array)[$i];
    
        4
  •  5
  •   Decko    15 年前

    或者如果你需要一个循环

    foreach ($array as $key => $value)
    {
        echo $key . ':' . $value . "\n";
    }
    //Result: 
    //one:value
    //two:value2
    
        5
  •  2
  •   Alex Pliutau    15 年前
    $array = array( 'one' =>'value', 'two' => 'value2' );
    $keys  = array_keys($array);
    echo $keys[0]; // one
    echo $keys[1]; // two
    
        6
  •  0
  •   Nicolas    15 年前

    你可以这样做:

    function asoccArrayValueWithNumKey(&$arr, $key) {
       if (!(count($arr) > $key)) return false;
       reset($array);
       $aux   = -1;
       $found = false;
       while (($auxKey = key($array)) && !$found) {
          $aux++;
          $found = ($aux == $key);
       }
       if ($found) return $array[$auxKey];
       else return false;
    }
    
    $val = asoccArrayValueWithNumKey($array, 0);
    $val = asoccArrayValueWithNumKey($array, 1);
    etc...
    

    还没有尝试过代码,但我很确定它会起作用。

    祝你好运!

        7
  •  0
  •   BenMorel Manish Pradhan    12 年前

    这个 key 功能帮助了我,非常简单

        8
  •  -1
  •   Aurovrata    10 年前

    在Ram Dane的回答中展开, key 函数是获取数组当前索引键的另一种方法。您可以创建以下函数,

        function get_key($array, $index){
          $idx=0;
          while($idx!=$index  && next($array)) $idx++;
          if($idx==$index) return key($array);
          else return '';
        }