У меня есть следующий массив
$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
. Я не могу заставить смещение работать правильно
Любая идея о том, как получить эти два значения слева, и могу ли я использовать здесь правильную функцию?
Я закончил тем, что сделал следующее:
Используйте 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_slice($array, $a - 3, 2)
$keys = array_slice($array, $a-3, 2);
var_dump($keys);
array(2) {
[0]=>
string(3) "720"
[1]=>
string(3) "530"
}
$a
равно 2
, он возвращает последнее значение, которое составляет 388