获取PHP多维数组的下一个和前一个元素

GSt*_*Sto 1 php multidimensional-array

我有一个PHP列表,具有以下结构:

$center = '2';

$all = array(
   array(
     'foo'=>'abc',
     'bar'=>'def',
     'order' => 2 
   ),
   array(
     'foo'=>'abc',
     'bar'=>'def',
     'order' => 5 
   ),
   array(
     'foo'=>'abc',
     'bar'=>'def',
     'order' => 11 
   ),
  //..etc
);
Run Code Online (Sandbox Code Playgroud)

我想要做的是在数组之前和之后获取数组order == $ center.实现这一目标的最佳方法是什么?

Dan*_*man 6

$idx = 0;
foreach ($array as $key => $value) {
    if ($value['order'] == $center) {
        $idx = $key; 
        break;
    }
}

$before = $all[$idx - 1];
$current = $all[$idx];
$after = $all[$idx + 1];
Run Code Online (Sandbox Code Playgroud)

如果$ center匹配数组的第一个或最后一个元素,但是之前或之后将无效 - 您想要考虑"之前"和"之后"元素?阵列应该被视为圆形结构吗?