値の配列、すべての文字列があります。配列には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は「registered:current」、Bは「registered:next」です。彼のテストでは、彼はAの後、Bの前の値を取得していますが、私のテストでは、Aの値( "registered:current")のみを取得しています。2つのマーカーの間に存在する値の代わりに、「registered:current」を出力するだけです。
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);
}