我正试图在foreach循环中动态编辑一个数组.我基本上分析了每个键,如果这个键匹配我想要的键,我想在这个键之后立即在数组中添加另一个键.
如果我拿这个代码,
$values = array( 'foo' => 10,'bar' => 20,'baz' => 30 ); foreach($values as $key => $value){ print $value . ' '; if($key == 'bar'){ $values['qux'] = 21; } }
我有两个问题,
>首先,输出是10 20 30而不是预期的10 20 30 21
>第二,即使我解决了第一个问题,我的值仍然会在我的数组末尾添加
我如何在bar和baz之间添加qux条目?
谢谢你的想法.
在循环内部,Foreach不会循环添加到数组中的新值.
如果要在两个现有值之间添加新值,可以使用第二个数组:
$values = array( 'foo' => 10,'baz' => 30 ); $newValues = array(); foreach($values as $key => $value) { $newValues[$key] = $value; if($key == 'bar') { $newValues['qux'] = 21; } } print implode(' ',$newValue);
另外,请参阅StackOverflow上我最喜欢的一个问题,讨论foreach循环:How does PHP ‘foreach’ actually work?