2 回答

TA貢獻1848條經驗 獲得超6個贊
關于您的代碼,您在循環中的length之前缺少$ 。
盡管如此:不需要循環遍歷數組 - 您可以直接尋址元素。以下將起作用:
<?php
$string="Cupid";
$stringmod= str_split($string);
unset($stringmod[count($stringmod)-1]);
unset($stringmod[0]);
print_r($stringmod);
?>
函數 array_pop 和 array_shift 將執行相同的操作(從數組中刪除最后一個/第一個元素)。如果您想稍后在代碼中再次執行此操作,它們會更好(PHP 使用關聯數組,因此 $stringmod[0] 僅在開頭才是第一個元素 - 當您刪除它時,不再有 $stringmod[0 ],因此執行 unset($stringmod[0]) 兩次不會刪除兩個“第一個”元素,而只會刪除一個)。所以在這種情況下最好的答案可能是:
<?php
$string="Cupid";
$stringmod= str_split($string);
array_pop($stringmod);
array_shift($stringmod);
print_r($stringmod);
?>
PS根據安德魯在我的答案下面的評論,您還可以使用 array_values() 函數重新排序或使用 array_splice() 刪除元素(這也會重新排序)。就我個人而言,我不喜歡使用它們,因為它們占用資源,并且在可能的情況下,我不依賴于數組具有幻數的排序索引:)

TA貢獻1796條經驗 獲得超4個贊
array_shift將從數組中刪除第一個元素,重新索引數字鍵。
array_pop將刪除最后一個。
$string="Cupid"; //orginal string
$stringmod= str_split($string);
array_shift($stringmod);
array_pop($stringmod);
print_r($stringmod);
如果您想通過循環來完成此操作,按照@jibsteroos comment,您幾乎已經完成了,您只需要在循環中正確引用測試計數器即可for。
- 2 回答
- 0 關注
- 152 瀏覽
添加回答
舉報