我也不知道该怎么表达,总之需求有点类似于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就好了。
直接上代码吧!~
手册中的array_search可以解决你的需求。
没啥好办法,两个数组来搞吧
谢谢邀请, 因为数组结构的
key
肯定是唯一的, 但可能不同的key
对应相同的值, 所以我所知道的, 要想实现c#
的linq
, 需要保证数组的值唯一,去除重复值后, 使数组反转,
反转结构把原数组的
key
当做值, 原数组的value
作为key
, 如下现在, 可以实现类似
c#
的linq功能了不足之处请多指出,,,
不就是根据值查询键么,一个 array_keys 就能解决了呀: