我有一个普通的、无聊的旧数组,里面有很多数据。假设数组的结构如下:
$myArray = array( 'a','b','c','START','d','e','f','END' );
现在,我只需要选择 START 之后但 END 之前的值。因此,在本例中,我需要选择值“d”、“e”和“f”。
这是棘手的部分;START 将始终存在,但 END 可能存在也可能不存在(这是从服务器返回数据的方式)。如果 START 和 END 都存在,那么我只需要 2 之间的值。如果只有 START 存在,那么只需选择从 START 到数组末尾的所有值。'START' 没有固定索引;它的位置会根据服务器提供的数据而变化。
那么有什么方法可以快速、相对轻松地在两个指定值之间提取这些值,然后将它们保存到一个新数组中呢?
编辑:我能够运行的唯一实现是@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));