在给定点的左侧对数组进行切片
slice an array on left of a given point
我有以下数组
$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
。我无法使偏移量正常工作
知道如何在左侧获取这两个值吗?我在这里使用的函数是否正确?
$keys = array_slice($array, $a-3, 2);
var_dump($keys);
array(2) {
[0]=>
string(3) "720"
[1]=>
string(3) "530"
}
这应该有效:
array_slice($array, $a - 3, 2)
我最终完成了以下操作,这完全符合我的需要
用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>";
我有以下数组
$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
。我无法使偏移量正常工作
知道如何在左侧获取这两个值吗?我在这里使用的函数是否正确?
$keys = array_slice($array, $a-3, 2);
var_dump($keys);
array(2) {
[0]=>
string(3) "720"
[1]=>
string(3) "530"
}
这应该有效:
array_slice($array, $a - 3, 2)
我最终完成了以下操作,这完全符合我的需要
用
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>";