php – 获取关联数组的数字索引

我有一个关联数组,我需要find一个键的数字位置。 我可以通过手动循环查找数组,但有没有更好的方式构build到PHP?

$a = array( 'blue' => 'nice', 'car' => 'fast', 'number' => 'none' ); // echo (find numeric index of $a['car']); // output: 1 
 echo array_search("car",array_keys($a)); 
 $blue_keys = array_search("blue", array_keys($a)); 

http://php.net/manual/en/function.array-keys.php

 function arrayValuePosition($value, $array) { return array_search($value, array_keys($array)); } 
 $a = array( 'blue' => 'nice', 'car' => 'fast', 'number' => 'none' ); var_dump(array_search('car', array_keys($a))); var_dump(array_search('blue', array_keys($a))); var_dump(array_search('number', array_keys($a)));
$a = array( 'blue' => 'nice', 'car' => 'fast', 'number' => 'none' ); var_dump(array_search('car', array_keys($a))); var_dump(array_search('blue', array_keys($a))); var_dump(array_search('number', array_keys($a))); 

我想出了一个解决scheme…与Fosco的解决scheme相比可能效率很低:

  protected function getFirstPosition(array$array, $content, $key = true) { $index = 0; if ($key) { foreach ($array as $key => $value) { if ($key == $content) { return $index; } $index++; } } else { foreach ($array as $key => $value) { if ($value == $content) { return $index; } $index++; } } }