PHP:取消设置数组中的前三个元素

Ign*_*nas 0 php arrays element unset

编辑:我找到了一种替代方法:array_slice()是一种很好的方法。

我有一个名为的数组$mas。取消设置数组的最后7个元素对我来说很好,但是当我尝试取消设置前3个元素时,出现错误:

注意:未定义的偏移量:0

这是我工作的几行代码:

$ilgis = count($mas);
unset($mas[$ilgis-1], $mas[$ilgis-2], $mas[$ilgis-3], $mas[$ilgis-4], $mas[$ilgis-5], $mas[$ilgis-6], $mas[$ilgis-7]);
Run Code Online (Sandbox Code Playgroud)

此代码不起作用:

...
unset($mas[0], $mas[1], $mas[2]);
Run Code Online (Sandbox Code Playgroud)

似乎它们甚至不存在于此数组中。任何想法如何解决?

顺便说一句, echo $mas[0];完美的作品。

var_dump($ mas)输出:

array (size=9)
  0 => string 'Paris-Orly - Stockholm-Arlanda' (length=30)
  1 => string 'Tuesday 25. Mar 2014 21:15 - Terminal: S' (length=41)
  2 => string 'Flight DY4314 - LowFare' (length=26)
  3 => string 'Stockholm-Arlanda - Copenhagen' (length=30)
  4 => string 'Wednesday 26. Mar 2014 07:00 - Terminal: 5' (length=43)
  5 => string 'Flight DY4151 - LowFare' (length=26)
  6 => string '1 Adult' (length=7)
  7 => string '1 Child (2-11)' (length=14)
  8 => string '1 Infant' (length=8)
Run Code Online (Sandbox Code Playgroud)

Ama*_*ali 5

您可以选择所需的值,而不必取消设置不需要的值。使用array_slice()用于这一目的。该解决方案的优势unset()在于您不必指定索引。

$mas = array(
    'Paris-Orly - Stockholm-Arlanda',
    'Tuesday 25. Mar 2014 21:15 - Terminal: S',
    'Flight DY4314 - LowFare',
    'Stockholm-Arlanda - Copenhagen',
    'Wednesday 26. Mar 2014 07:00 - Terminal: 5',
    'Flight DY4151 - LowFare',
    '1 Adult',
    '1 Child (2-11)',
    '1 Infant'
);

$output = array_slice($mas, 3); 
print_r($output);
Run Code Online (Sandbox Code Playgroud)

输出:

Array
(
    [0] => Stockholm-Arlanda - Copenhagen
    [1] => Wednesday 26. Mar 2014 07:00 - Terminal: 5
    [2] => Flight DY4151 - LowFare
    [3] => 1 Adult
    [4] => 1 Child (2-11)
    [5] => 1 Infant
)
Run Code Online (Sandbox Code Playgroud)

演示版