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 关注
- 119 浏览
添加回答
举报