下面是我的数组:
$array = [
'key1' => [
'first' => 'azerty',
'second' => 'qwerty'
],
'key2' => [
'first' => 'hello',
'second' => 'world'
]
];
对于值“qwerty”,我想检索“key1”。
我在找这样的东西:
$theKeyIWant = array_search('qwerty', array_column($array, 'second'));
但是我得到的是'0',而不是'key1'(我知道这就是它的工作原理)
有人知道如何修改这段代码或者知道另一段代码来获取键值吗?
4条答案
按热度按时间t40tm48m1#
稍微修改代码以合并键和列值:
brtdzjyr2#
为这个任务寻找"更性感的东西"的问题在于,如果"性感"意味着"函数迭代器",那么代价就是不能"早返回"(做不必要的循环)。
如果你想调用一个单行函数,你可以构建自己的函数,并把它放在你项目的某个helpers文件中,我强烈建议你放弃"sexy",使用一个可破坏的foreach循环。
代码:(Demo)
如果您要对同一个数组执行重复搜索,并且第二列保证包含唯一值,那么您可以将该数组转换为查找数组,而不会丢失任何数据。(Demo)
cfh9epnr3#
要解决这个问题,可以循环遍历外部数组,并使用**array_search()**在每个内部数组中搜索值。
xa9qqrwz4#
array_keys
返回数组的键数组。3V4l