Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在给定点的左侧切片数组_Php_Arrays - Fatal编程技术网

Php 在给定点的左侧切片数组

Php 在给定点的左侧切片数组,php,arrays,Php,Arrays,我有以下数组 $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右侧的值

我有以下数组

$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_slice($array, $a - 3, 2)
这应该起作用:

array_slice($array, $a - 3, 2)

我最终做了以下几件事,这完全符合我的需要

  • 使用
    array\u reverse
    反转数组

  • 接下来,重新计算
    $a

  • 正常使用
    array\u 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;
$reverse_position=计数($array)-(a);
$array\u reverse=array\u reverse($array);
$sliced\u reverse=array\u slice($array\u reverse,$reverse\u position+1,2);
回声“;
变量转储($sliced\u reverse);
回声“;

我最后做了以下几件事,完全符合我的需要

  • 使用
    array\u reverse
    反转数组

  • 接下来,重新计算
    $a

  • 正常使用
    array\u 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;
$reverse_position=计数($array)-(a);
$array\u reverse=array\u reverse($array);
$sliced\u reverse=array\u slice($array\u reverse,$reverse\u position+1,2);
回声“;
变量转储($sliced\u reverse);
回声“;

我是第一个。但是我支持低重复次数:-)它可以工作,但问题是,比如说
$a
2
,它返回的最后一个值是
388
我是第一个。但我支持低重复次数:-)它可以工作,但问题是,比如说
$a
2
,它返回最后一个值是
388
,它可以工作,但问题是,比如说
$a
2
,它返回最后一个值是
388
它可以工作,但问题是,比如说
$a
2
,它返回最后一个值,即
388