我发现用foreach和for遍历数组操作元素,结果不一样

black_OX 2011-12-05 07:22:11
$arr = array(0 => 'aa', 
1 => 'bb',
2 => 'cc',
3 => array(0 => 'one', 1 => 'two'));

$conf = &$arr;

foreach ($conf as $c) {
if(is_array($c)) {
array_splice($c, 1);
// unset($c[1]);
}
}

print_r($arr);


这里并不能把元素删除.
而我用for:

for($i = 0; $i < count($conf); $i++) {
if(is_array($conf[$i])) {
array_splice($conf[$i], 1);
}
}

结果就已经删除了..

请高手解释一下,小弟谢过了
...全文
128 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
black_OX 2011-12-05
  • 打赏
  • 举报
回复
已经知道为什么了.. 公司那装的是PHP4. PHP4不支持 foreach ($conf as &$c) 这种引用传值.. 我草啊!!!
ohmygirl 2011-12-05
  • 打赏
  • 举报
回复
foreach ($conf as &$c)

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧