亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

轉換為數組后,刪除字符串上的元素不起作用

轉換為數組后,刪除字符串上的元素不起作用

PHP
慕碼人2483693 2023-07-08 15:44:24
下面的代碼解釋了如何使用 unset 函數刪除元素,我使用了一個字符串并將該字符串轉換為數組,現在嘗試刪除第一個和最后一個元素。但元素不會被刪除。幫助將不勝感激<?php$string="Cupid";  //orginal string$stringmod= str_split($string);  //converted the string to an array$length= count($stringmod); //length of the stringfor($i=0; $i<$length; $i++) {    if($i == 0 || $i == $length-1) //condition to be executed    {                unset($stringmod[$i]); //delete elements        }    }print_r($stringmod);?>
查看完整描述

2 回答

?
慕勒3428872

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() 刪除元素(這也會重新排序)。就我個人而言,我不喜歡使用它們,因為它們占用資源,并且在可能的情況下,我不依賴于數組具有幻數的排序索引:)


查看完整回答
反對 回復 2023-07-08
?
慕的地8271018

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。


查看完整回答
反對 回復 2023-07-08
  • 2 回答
  • 0 關注
  • 152 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號