Подтвердить что ты не робот

Как получить позицию ключа в массиве

Хорошо, поэтому мне нужно захватить позицию "бла" в этом массиве (позиция не всегда будет одинаковой). Например:

$array = (
    'a' => $some_content,
    'b' => $more_content,
    'c' => array($content),
    'blah' => array($stuff),
    'd' => $info,
    'e' => $more_info,
);

Итак, я хотел бы иметь возможность вернуть число, в котором ключ "бла" находится внутри массива. В этом случае он должен вернуться 3. Как я могу сделать это быстро? И без влияния на массив $array.

4b9b3361

Ответ 1

$i = array_search('blah', array_keys($array));

Ответ 2

Если вы знаете, что ключ существует:

PHP 5.4 (Демо):

echo array_flip(array_keys($array))['blah'];

PHP 5.3:

$keys = array_flip(array_keys($array));
echo $keys['blah'];

Если вы не знаете, что ключ существует, вы можете проверить его с помощью isset:

$keys = array_flip(array_keys($array));
echo isset($keys['blah']) ? $keys['blah'] : 'not found' ;

Это просто как array_search, но использует карту, существующую уже внутри любого массива. Я не могу сказать, действительно ли это лучше, чем array_search, это может зависеть от сценария, поэтому просто еще одна альтернатива.

Ответ 3

$keys=array_keys($array); даст вам массив, содержащий ключи $array

Итак, array_search('blah', $keys); даст вам индекс blah в $keys и, следовательно, $array

Ответ 4

Пользователь array_search (doc). А именно: `$ index = array_search ('blah', $array)