在PHP中动态创建数组

Nor*_*man 0 php

我被卡住了.我需要根据提供的数字创建一个数组,我无法想到任何方法.

需要做的是:如果数字是1需要的数组array("2","3","4","10")

如果数字是2需要的数组array("3","4","10")

如果数字是3需要的数组array("4","10")

如果数字是4需要的数组array("10")

如果数字10不需要数组.

除了有大量的做ifselseifs,有没有更优雅的方式来做到这一点?这只是针对这个问题.实际情况更糟.

我的方法:

if ($num == 1) {
    $array = array("2","3","4","10");
} elseif ($num == 2) {
    $array = array("3","4","10");
} etc.
Run Code Online (Sandbox Code Playgroud)

Mic*_*ton 5

使用array_searcharray_slice:

$array = array(1, 2, 3, 4, 10);

$result = array_slice($array, array_search($num, $array) + 1);
Run Code Online (Sandbox Code Playgroud)

例:

$array = array(1, 2, 3, 4, 10);

foreach ($array as $num)
{
  echo '<pre>' . print_r(array_slice($array, array_search($num, $array) + 1), TRUE) . '</pre>';
}
Run Code Online (Sandbox Code Playgroud)

这给出了:

1:
Array
(
    [0] => 2
    [1] => 3
    [2] => 4
    [3] => 10
)

2:
Array
(
    [0] => 3
    [1] => 4
    [2] => 10
)

3:
Array
(
    [0] => 4
    [1] => 10
)

4:
Array
(
    [0] => 10
)

10:
Array
(
)
Run Code Online (Sandbox Code Playgroud)