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


Answers

$blue_keys = array_search("blue", array_keys($a));

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

Question

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

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

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



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



решение, которое я придумал ... возможно, довольно неэффективно в сравнении с решением 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++;
   }
  }
 }



Links



Tags

php php   arrays