Puede obtener fácilmente un valor de matriz de una clave como esta: $value = array[$key]
, pero ¿qué sucede si tengo el valor y quiero la clave? ¿Cuál es la mejor manera de obtenerlo?¿Cómo obtener la matriz KEY de VALUE?
Respuesta
Puede usar array_search()
para encontrar la primera clave coincidente.
Del manual:
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array); // $key = 1;
Puede usar la función array_keys
para eso.
Ejemplo:
$array = array("blue", "red", "green", "blue", "blue");
print_r(array_keys($array, "blue"));
Esto hará que la clave de la matriz por el valor blue
manera No realmente fácil. Pasa por las teclas hasta que encuentres la matriz [$ key] == $ value
Si haces esto a menudo, crea una matriz inversa/hash que correlacione los valores a las claves. Tenga en cuenta que varias teclas pueden asignarse a un solo valor.
Estoy de acuerdo con hacer un mapa inverso si necesita hacer muchas búsquedas, pero definitivamente hay [una manera fácil] (http://stackoverflow.com/questions/2960066/best-way-to-get-array-key- from-value/2960083 # 2960083) –
@barrycarter @ Michael_Mrozek, vea array_flip – mmattax
Sus valores de la matriz pueden ser duplicados por lo que no le dará las claves exactas. Sin embargo, la forma en que creo que está bien es como repetir y leer las claves
$arr = array('mango', 'orange', 'banana');
$a = array_flip($arr);
$key = $a['orange'];
Lo más rápido: sin comparación, solo cambie los valores con las teclas. – fkaufusi
- 1. C# JSON Serialización del diccionario en {key: value, ...} en lugar de {key: key, value: value, ...}
- 2. Key/Value pyqt QComboBox
- 3. Comprensión de las tiendas Key-Value
- 4. Transformación de LINQ Diccionario <key,value> al Diccionario <value,key>
- 5. ¿Hay alguna diferencia entre las notaciones hash `` key => "value" `y` key: "value" `?
- 6. Cómo obtener el valor almacenado en ArrayList <HashMap <key,value>>?
- 7. ¿La mejor manera de almacenar una matriz key => value en JavaScript?
- 8. ¿[NSMutableDictionary setValue: value forKey: key] retiene la clave NSString?
- 9. bulldozer Mapeo HashMap <Key,Value> a la lista <Value>
- 10. MapView, MKAnnotation & Key-Value-Observing - Mensaje de error
- 11. Obtener innerhtml value en la variable
- 12. Cuál es la diferencia entre std :: multimap <key, value> y std :: map <key, std :: set <value>>
- 13. cómo obtener la TABLA HTML Particullar Cell Value usando javascript?
- 14. ¿Cómo leer el archivo key = value y cómo dividir una cadena separada por comas?
- 15. Python equivalente a foreach de php ($ array as $ key => & $ value)
- 16. ¿Hay una tienda en la nube comprobada comercial/Key => Value Database? (Código abierto)
- 17. ¿Cuál es la diferencia entre Session.Add ("clave", valor) y Session ["key"] = value?
- 18. Obtener clave de la matriz asociativa
- 19. PHP cómo obtener el valor de la matriz si la clave está en una variable
- 20. Eliminación de errores de Eclipse HashMap: Estructura lógica utilizando el método ToString() de Key y Value()
- 21. ¿Cuál es el mejor tipo de datos VBA`key` => `value` para guardar datos igual que PHP array
- 22. ¿Cómo obtener subcampos de la matriz?
- 23. recorrer la matriz y obtener la clave y el valor
- 24. Comportamiento extraño de .NET serialización binaria en el diccionario <Key, Value>
- 25. ¿Cómo obtener un DateDiff-Value en milisegundos en VBA (Excel)?
- 26. 'demasiados valores para descomprimir', iterando sobre un dict. key => string, value => list
- 27. ¿Cómo obtener y usar una matriz asociativa de YAML a la acción en Symfony?
- 28. ¿Qué son las bases de datos NoSql Key/Value utilizadas para
- 29. ¿Cómo obtener Enum Value del índice en Java?
- 30. ¿Cómo obtener claves de matriz en Javascript?
¿Es esto realmente lo que OP está buscando? Lo entendí de manera diferente (como una búsqueda de un * valor *). –
@Pekka: veamos lo que OP está buscando en realidad, aunque las manos :) – Sarfraz
array_search y array_keys me funcionan, sin embargo, array_search elimina el paso adicional de tener que tomar el primer valor de la matriz devuelta por array_keys. Entonces usaré array_search, pero +1 a cada uno de ustedes ya que ambos son buenas respuestas. –