PHP – Obtener el nombre de la clave del valor de la matriz

Tengo una matriz como la siguiente:

function example() { /* some stuff here that pushes items with dynamically created key strings into an array */ return array( // now lets pretend it returns the created array 'firstStringName' => $whatEver, 'secondStringName' => $somethingElse ); } $arr = example(); // now I know that $arr contains $arr['firstStringName']; 

Necesito encontrar el índice de $arr['firstStringName'] modo que pueda recorrer array_keys($arr) y devolver la cadena de clave 'firstStringName' por su índice. ¿Cómo puedo hacer eso?

Si tiene un valor y desea encontrar la clave, use array_search() esta manera:

 $arr = array ('first' => 'a', 'second' => 'b', ); $key = array_search ('a', $arr); 

$key ahora contendrá la clave para el valor 'a' (es decir, 'first' ).

 key($arr); 

devolverá el valor de clave para el elemento de matriz actual

http://uk.php.net/manual/en/function.key.php

Si lo entiendo correctamente, ¿no puedes simplemente usar:

 foreach($arr as $key=>$value) { echo $key; } 

Ver el manual de PHP

Si el nombre es dynamic, entonces debes tener algo como

 $arr[$key] 

lo que significa que $ clave contiene el valor de la clave.

Puede usar array_keys() para obtener TODAS las teclas de una matriz, por ejemplo

 $arr = array('a' => 'b', 'c' => 'd') $x = array_keys($arr); 

te daría

 $x = array(0 => 'a', 1 => 'c'); 

Sí, de hecho, php es uno de los pocos idiomas que ofrecen dicho soporte.

 foreach($arr as $key=>$value) { } 

use array_keys () para obtener una matriz de todas las claves únicas.

Tenga en cuenta que también se puede acceder a una matriz con claves con nombre como $ $ $ con índices numéricos, como $ arr [0].

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

si necesita devolver un conjunto de elementos con el mismo valor, use la función array_keys ()

 $array = array('red' => 1, 'blue' => 1, 'green' => 2); print_r(array_keys($array, 1)); 

Aquí hay otra opción

 $array = [1=>'one', 2=>'two', 3=>'there']; $array = array_flip($array); echo $array['one']; 

Compruebe la documentación de la función array_keys()

Función array_keys

puede usar la función clave de php para obtener el nombre de la clave:

  'apple', 'fruit2' => 'orange', 'fruit3' => 'grape', 'fruit4' => 'apple', 'fruit5' => 'apple'); // this cycle echoes all associative array // key where value equals "apple" while ($fruit_name = current($array)) { if ($fruit_name == 'apple') { echo key($array).'
'; } next($array); } ?>

como aquí: PHP: clave – Manual