簡體   English   中英

PHP:刪除特定數組之前的所有數組元素

[英]PHP: Delete all array elements before a specific one

嗨,我有以下數組:

$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]);
}

但這行不通。

將$ 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);

可以使用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
)

你的數組

$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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM