[英]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.