你可以很容易地从一个键如下所示得到一个数组值:$value = array[$key]
但是如果我有这个值并且我想要这个键。什么是最好的方式来获得它?如何从VALUE获取数组KEY?
回答
您可以使用array_search()
查找第一个匹配键。
从手册:
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array); // $key = 1;
您可以使用array_keys
函数。
例子:
$array = array("blue", "red", "green", "blue", "blue");
print_r(array_keys($array, "blue"));
这将让该数组中的键值blue
没有非常简单的方法。循环键直到找到数组[$ key] == $ value
如果经常这样做,请创建一个反向数组/散列,将值映射回键。请记住,多个键可映射到单个值。
我同意做一个反向映射,如果你需要做很多查找,但肯定有[一个简单的方法](http://stackoverflow.com/questions/2960066/best-way-to-get-array-key-从值/ 2960083#2960083) – 2010-06-02 17:41:47
@barrycarter @ Michael_Mrozek,请参阅array_flip – mmattax 2010-06-02 17:48:21
您的数组值可以是重复的,因此不会给你确切的钥匙。然而,我认为是好的方式就像迭代和阅读密钥
$arr = array('mango', 'orange', 'banana');
$a = array_flip($arr);
$key = $a['orange'];
最快 - 没有比较,只需用键翻转值。 – fkaufusi 2017-05-22 03:19:18
- 1. 从PHP中的数组获取KEY&VALUE?
- 2. PHP - 如何将数组从(Key,Value)转换为(Key,Value,Value)?
- 3. 从对象数组中获取uniq [key,value]使用lodash
- 4. 如何区分[key]和[value]与其他[key]和[value]的父数组[key]?
- 5. 转换数组key/value对
- 6. 从Json Key Value Pair获取Value的问题
- 7. 如何从$ key的foreach中获取密钥名称($ _ POST为$ key => $ value){
- 8. Cakephp从数据库中获取key和value
- 9. 如何从Value获取Resource.Id?
- 10. Mystery Key Value Coding Key
- 11. scala map(“key”)=“value”如何转换为map.update(“key”,“value”)?
- 12. 搜索PHP数组key和value
- 13. 如何从Key Json中逐个获取值(数组中的值)?
- 14. 从url中删除key = value
- 15. C#字典如何从文件中读取key = value
- 16. 如何从一串key = value对中获取电子邮件地址?
- 17. 如何将元素(key => value)添加到空数组中?
- 18. 如何批量遍历数组key = value item
- 19. Key Value Pair C
- 20. Ruby key&Value?
- 21. javascript push key value
- 22. Key-Value Coding @UnionOfObjects
- 23. Key Value Observing Cascading
- 24. c#menustrip key value
- 25. 在Google应用程序脚本中获取json数组中的Key-> Value
- 26. 如何获取Twitter Fabric Key
- 27. 如何从MySQL中动态获取列名获取OLD VALUE和NEW VALUE?
- 28. 如何从PHP数组更新mysql数据库WHERE value = value?
- 29. Key-Value Observing和RoboVM
- 30. JSON KEY VALUE LOOP PHP
这是真的是OP是寻找什么?我对此有不同的理解(作为*值*的搜索)。 – 2010-06-02 17:50:19
@Pekka:让我们来看看OP实际上在寻找什么,但请注意:) – Sarfraz 2010-06-02 17:52:27
array_search和array_keys都适用于我,但是array_search不需要额外的步骤来获取array_keys返回的数组的第一个值。所以我会使用array_search,但对你们每个人都+1,因为它们都是很好的答案。 – 2010-06-02 18:07:21