PHP:如何从数字索引获得关联数组键?

如果我有:

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

如何从$array[1]获取string?

你没有。 你的数组没有密钥[1] 。 你可以:

  • 创build一个新的数组,其中包含键:

     $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]与你所说的“一”不对应。

 $array = array( 'one' =>'value', 'two' => 'value2' ); $allKeys = array_keys($array); echo $allKeys[0]; 

哪个会输出:

 one 

如果你只打算使用一个键,你可以用一行来完成,而不必为所有键存储一个数组:

 echo array_keys($array)[$i]; 

或者如果你需要一个循环

 foreach ($array as $key => $value) { echo $key . ':' . $value . "\n"; } //Result: //one:value //two:value2 
 $array = array( 'one' =>'value', 'two' => 'value2' ); $keys = array_keys($array); echo $keys[0]; // one echo $keys[1]; // two 

你可以这样做:

 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... 

没有尝试过的代码,但我很确定它会工作。

祝你好运!

关键function帮助了我,非常简单

在Ram Dane的回答中, 关键函数是获得当前数组索引键的另一种方法。 您可以创build以下function,

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