【发布时间】:2020-12-24 23:10:41
【问题描述】:
想象一下在 PHP 脚本中设置的一些数组,如下所示:
$foo = array(
'bob'=>976,
'Jack'=>'Octopus',
'bar'=>'baz',
'pi'=>'irrational',
'other'=>123
);
$biz = array(
'Harry'=>'Dogs',
'Zim'=>'zoom',
'bar'=>'baz',
);
现在让我们说(出于某种原因)我想在“bar”之前获取数组第一个索引的内容。像这样:
function get_before($ar,$what){
// ... the bit I'm still working on
}
echo get_before($foo,'bar'); // should be Octopus
echo get_before($biz,'bar'); // should be zoom
我认为我想要的是我面前的钥匙。有没有办法得到它? (您可以假设数组很少有 50 个元素那么大)。
我一直在玩弄使用array_keys,对新数组进行搜索,得到结果的索引值减去一来找到新键,然后使用该键来获取我的目标。这似乎是不必要的密集和hackish - 一个更简单的方法会让我更开心,因为我创建的函数会在每次页面加载时被调用很多。
【问题讨论】:
-
使用您提供的名称搜索数组索引(例如'bar'),然后执行(减1)数组索引数据检索。
-
如果顺序很重要,为什么要使用关联数组?
-
我认为没有什么比您在上一段中描述的要好得多。没有任何内置功能可以做到这一点。