java - php有什么数据结构可以实现双向索引查询?
本文介绍了java - php有什么数据结构可以实现双向索引查询?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
我也不知道该怎么表达,总之需求有点类似于C#里面的linq,
假如有如下数组
$test = [
'a'=>'a1',
'b'=>'a1',
'c'=>'c1',
]
我现在可以通过$test['a']查询到'a1',但是我也想通过'a1'来反查到'a'和'b'两个元素,请问如何在php中实现这个?
补充:有人说用foreach实现,但是我这个数组到后期有可能非常大,甚至大到几千上万,用foreach肯定效率不高。
已有的解决方案只能解决每个数组元素键值不一样的情况,也就是一对一映射的情况,1是array_search,2是先array_flip再用传统的$test['a1']查找。
解决方案
在群里面请教大神解决了,array_keys就好了。
<?php
$a=array("a"=>"Dog","b"=>"Dog","c"=>5,"d"=>"5");
print_r(array_keys($a,"Dog"));
//Array ( [0] => a [1] => b )
?>
直接上代码吧!~
这篇关于java - php有什么数据结构可以实现双向索引查询?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文