PHP:删除特定元素之前的所有数组元素

Posted

技术标签:

【中文标题】PHP:删除特定元素之前的所有数组元素【英文标题】:PHP: Delete all array elements before a specific one 【发布时间】:2016-02-12 08:36:44 【问题描述】:

您好,我有以下数组:

$days = array(
            1=>"Sunday",
            2=>"Monday",
            3=>"Tuesday",
            4=>"Wednesday",
            5=>"Thursday",
            6=>"Friday",
            7=>"Saturday"
            );

现在我想创建一个循环,自动删除数字 4 之前的所有对象。 我试过这个:

$startIndex = 4;
for($i = 1; $days < $startIndex; $i++)

    unset($days[$i]);

但它不起作用。

【问题讨论】:

你看过array_splice吗?即:array_splice( $days,0, 4 ); 【参考方案1】:

可以使用array_slice() 给出更短的解决方案:

$days = array(
            1=>"Sunday",
            2=>"Monday",
            3=>"Tuesday",
            4=>"Wednesday",
            5=>"Thursday",
            6=>"Friday",
            7=>"Saturday"
            );


$startIndex = 4;
$days = array_slice($days, $startIndex-1, NULL, TRUE);

print_r($days);

返回

Array
(
    [4] => Wednesday
    [5] => Thursday
    [6] => Friday
    [7] => Saturday
)

【讨论】:

【参考方案2】:

将 $days 更改为 $i,因为 $i 是您的索引值。

$days = array(
            1=>"Sunday",
            2=>"Monday",
            3=>"Tuesday",
            4=>"Wednesday",
            5=>"Thursday",
            6=>"Friday",
            7=>"Saturday"
            );


$startIndex = 4;
for($i = 1; $i < $startIndex; $i++)

    unset($days[$i]);


print_r($days);

【讨论】:

【参考方案3】:

你的数组

$days = array
(
     1=>"Sunday",
     2=>"Monday",
     3=>"Tuesday",
     4=>"Wednesday",
     5=>"Thursday",
     6=>"Friday",
     7=>"Saturday"
);

循环删除指定索引之前的所有元素。

# Number to stop the unset.
$split_number =4;
# Loop through array

for($a=0;$a<sizeof($days);$a++)

    if($a < $split_number)
        # Unset element if condition is true
        unset($days[$a]);


print_r($days);

结果

Array
(
    [4] => Wednesday
    [5] => Thursday
    [6] => Friday
    [7] => Saturday
)

如果您希望索引再次从 0 开始,您可以使用 array_values

【讨论】:

以上是关于PHP:删除特定元素之前的所有数组元素的主要内容,如果未能解决你的问题,请参考以下文章

PHP:如何从数组中删除特定元素?

如何删除包含某个子字符串的所有 PHP 数组元素?

php 怎样从一个数组中取出所有元素

PHP实现删除数组中的特定元素

PHP实现删除数组中的特定元素

PHP删除数组中特定元素的两种方法