È possibile ottenere facilmente un valore di matrice da un tasto in questo modo: $value = array[$key]
ma cosa succede se ho il valore e voglio la chiave. Qual è il modo migliore per farlo?Come ottenere l'array KEY da VALUE?
risposta
È possibile utilizzare array_search()
per trovare la prima chiave corrispondente.
Dal manuale:
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array); // $key = 1;
È possibile utilizzare la funzione array_keys
per quello.
Esempio:
$array = array("blue", "red", "green", "blue", "blue");
print_r(array_keys($array, "blue"));
In questo modo ottenere la chiave dalla matrice per il valore blue
modo No davvero facile. Passare in rassegna le chiavi fino a trovare la matrice [$ chiave] == $ valore
Se lo si fa spesso, creare un array/hash inverso che ricalcoli i valori ai tasti. Tieni presente che più chiavi possono essere associate a un singolo valore.
Sono d'accordo con fare una mappa inversa se hai bisogno di fare molte ricerche, ma sicuramente c'è [un modo semplice] (http://stackoverflow.com/questions/2960066/best-way-to-get-array-key- from-value/2960083 # 2960083) –
@barrycarter @ Michael_Mrozek, vedere array_flip – mmattax
I suoi valori di matrice possono essere duplicati in modo che non ti danno le chiavi esatte. Tuttavia, il modo in cui penso va bene è come ripetere e leggere i tasti
$arr = array('mango', 'orange', 'banana');
$a = array_flip($arr);
$key = $a['orange'];
Più veloce - nessun confronto, basta capovolgere i valori con i tasti. – fkaufusi
- 1. C'è qualche differenza tra le chiavi `: key =>" value "` e `key:" value "` hash?
- 2. Consul mantiene il Key Value store?
- 3. explode() in $ key => $ value coppia
- 4. Come ottenere ParameterInfo Value?
- 5. Come leggere il file key = value e come dividere una stringa separata da virgola?
- 6. Does [NSMutableDictionary setValue: value forKey: key] conserva la chiave NSString?
- 7. Javascript Ordina Array da Value
- 8. Boltdb-key-Value Data Store puramente in Go
- 9. Java map, key = class, value = istanza di quella classe
- 10. rapido: Aggiungere più <key, value> oggetti per NSDictionary
- 11. MapView, MKAnnotation & Key-Value-Observing - Messaggio di errore
- 12. unordered_map - {{chiave, valore}, {key, value}} sintassi non valida
- 13. Esiste il dizionario <Key,Value> senza chiave univoca?
- 14. lodash - project/transform object in key value array
- 15. Che cosa sono i database NoSql Key/Value utilizzati per
- 16. AngularJS come ottenere l'elemento scrollHeight value?
- 17. Ottenere Google Maps API key
- 18. Riorganizzazione di un array: voci dispari come KEY, anche voci come VALUE
- 19. annotazioni personalizzate come @Value
- 20. Come ottenere hash table key che ha un valore specifico?
- 21. Ordinamento un dizionario da Value
- 22. Java e Python equivalente di PHP foreach ($ array come $ key value => $)
- 23. ottenere la proprietà "Value" in IGrouping
- 24. Strategia Hibernate Value Value
- 25. Esiste un cloud store comprovato/Key => Value Database? (Open Source)
- 26. Problemi di sincronizzazione di iCaloud Key-Value-Store (NSUbiquitousKeyValueStoreDidChangeExternallyNotification not called)
- 27. if (mask & VALUE) o if ((mask & VALUE) == VALUE)?
- 28. Eclipse debugging HashMap: Struttura logica utilizzando il metodo toString() di Key and Value
- 29. Reverse una mappa in formato <value, key> in Golang
- 30. Haskell Persistent: come ottenere l'entit da db by key se ho la chiave in variabile intera?
È proprio questo ciò che l'OP sta cercando? L'ho capito diversamente (come una ricerca di un * valore *). –
@Pekka: Vediamo cosa OP effettivamente sta cercando, alzi però :) – Sarfraz
array_search e array_keys funzionano entrambi per me, tuttavia array_search fa il passo extra di dover prendere il primo valore dell'array restituito da array_keys. Quindi userò array_search, ma +1 a ciascuno di voi poiché sono entrambe buone risposte. –