我有一个值数组,所有字符串。数组中还有 2 个“标记”条目,表示后面的值是什么。基本上它是这样设置的:
$array['1','2','3','A','5','6','7','B','8','9']
我需要在 A之后但在 B之前检索数组索引。因此,在此示例中,索引为 5、6 和 7。
我正在考虑使用 forloop 和一些迭代 if 语句来执行此操作。但我似乎无法弄清楚。任何帮助深表感谢 :)
编辑:还值得注意的是,A 和 B 并不总是在数组中的同一位置;有些用户在 A 和 B 之间的数据比其他用户多,有些用户根本没有 A 和 B。但是如果 A 存在,我需要获取它后面的值。如果 A 和 B 存在,它们也将始终具有相同的值(A 和 B)。
EDIT2:根据 PeeHaa 的建议,这是我目前正在尝试的。A 是“已注册:当前”,B 是“已注册:下一个”。在他的测试中,他得到了在 A 之后但在 B 之前的值,但是在我的测试中,我只得到了 A 的值(“注册:当前”)。它只输出“注册:当前”而不是两个标记之间存在的值。
function getValuesBetweenMarkers($theArray, $startMarker = 'registered:current', $endMarker = 'registered:next')
{
$offset = array_search($startMarker, $theArray) + 1;
$length = array_search($endMarker, $theArray) - $offset;
return array_slice($theArray, $offset, $length, true);
}