当前位置:  开发笔记 > 编程语言 > 正文

array_splice()在循环中无法正常工作

如何解决《array_splice()在循环中无法正常工作》经验,为你挑选了1个好方法。

此代码按预期工作,并在值为5或10时删除数组元素.但只有在数组中有1或5或10的值时它才有效.

如果我有超过1的值为5或10,则只删除其中的1个并将其他元素留在数组中.

我的代码:

for($i = 0; $i <= 10; $i++) {
    if($somevar[$i] == 5 || $somevar[$i] == 10) {
        echo 'the sumvar'.$somevar[$i].' exists
'; array_splice($somevar, $i, 1); } }

作为一个例子,如果我有:[3, 5, 4]结果如预期:[3, 4].但是,如果我有一个像这样的数组:[3, 5, 10, 4]它只删除5,但不是10 : [3, 10, 4].

我似乎无法找到它我做错了什么以及为什么我的代码不能按预期工作?



1> Ctx..:

您似乎错过了在拼接操作后重新编号的数组元素.

你必须调整循环变量:

for($i = 0; $i < sizeof($somevar); $i++) {
    if($somevar[$i] == 5 || $somevar[$i] == 10) {
        echo 'the sumvar'.$somevar[$i].' exists
'; array_splice($somevar, $i, 1); $i--; } }

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有