Php - получить числовой индекс ассоциативного массива

У меня есть ассоциативный массив, и мне нужно найти числовое положение ключа. Я мог бы перебрать массив вручную, чтобы найти его, но есть ли лучший способ встраивания в PHP?

$a = array(
  'blue'   => 'nice',
  'car'    => 'fast',
  'number' => 'none'
);

// echo (find numeric index of $a['car']); // output: 1

Ответ 1

echo array_search("car",array_keys($a));

Ответ 3

function arrayValuePosition($value, $array)
{
    return array_search($value, array_keys($array));
}

Ответ 4


  $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)));

Ответ 5

решение, которое я придумал... возможно, довольно неэффективно в сравнении с решением Fosco:

 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++;
   }
  }
 }