我有以下数组
$array = array (
0 => '730',
1 => '724',
2 => '720',
3 => '530',
4 => '56',
5 => '76',
6 => '528',
7 => '394',
8 => '390',
9 => '388',
)
我在数组中有一个给定的点,比如$a = 5
,它转换为值56
现在,我需要在这个给定点的两边得到两个值。对于$a
右侧的值,我使用以下
$keys = array_slice( $array, $a, $x_from_current );
正确地为我提供了值76
和528
但我无法获得左侧的2个值,在这种情况下为720
和530
。我无法使偏移正常工作
关于如何在左侧获取这两个值的任何想法,我甚至在这里使用正确的函数?
答案 0 :(得分:3)
这应该有效:
array_slice($array, $a - 3, 2)
答案 1 :(得分:2)
$keys = array_slice($array, $a-3, 2);
var_dump($keys);
array(2) {
[0]=>
string(3) "720"
[1]=>
string(3) "530"
}
答案 2 :(得分:0)
我最终做了以下工作,完全符合我的需求
使用array_reverse
反转数组
接下来,重新计算$a
正常使用array_slice
以下是结束代码:
$array = array (
0 => '730',
1 => '724',
2 => '720',
3 => '530',
4 => '56',
5 => '76',
6 => '528',
7 => '394',
8 => '390',
9 => '388',
);
$a = 5;
$reverse_position = count( $array ) - ( $a );
$array_reverse = array_reverse( $array );
$sliced_reverse = array_slice( $array_reverse, $reverse_position + 1, 2 );
echo "<pre>";
var_dump($sliced_reverse);
echo "</pre>";