たくさんのデータが入っている、普通の退屈な古い配列があります。配列が次のように構成されているとしましょう。
$myArray = array( 'a','b','c','START','d','e','f','END' );
ここで、STARTの後、ENDの前にある値のみを選択する必要があります。したがって、この例では、値'd'、'e'、および'f'を選択する必要があります。
ここに注意が必要な部分があります。STARTは常に存在しますが、ENDは存在する場合と存在しない場合があります(これがサーバーからデータが返される方法です)。STARTとENDの両方が存在する場合は、2。の間にある値が必要です。STARTのみが存在する場合は、STARTから配列の最後までのすべての値を選択するだけです。「START」には固定インデックスがありません。その場所は、サーバーから提供されたデータに応じて変わります。
では、これらの値を2つの指定された値の間に取り除いて、新しい配列に保存するための、迅速で比較的簡単な方法は何でしょうか。
編集:私が機能させることができた唯一の実装は、コメントのさらに下にある@nickbによって提供されたものでした。他の人が使いやすいように、このOPに追加しました。
array_shift( $array[0]); // Get rid of the 'count' element
$start = array_search( 'registered:current', $array[0], true);
$end = array_search( 'END', $array[0], true); // Change 'END' to whatever it is
$return = array_slice( $array[0], $start + 1, ($end ? ($end - $start - 1) : null));