【发布时间】:2015-03-28 19:21:21
【问题描述】:
我正在尝试在 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 条目?
感谢您的想法。
【问题讨论】:
-
这可能是因为您没有创建新数组,而是使用旧数组来存储值。这就是为什么它位于数组末尾的原因。要做你想做的事是让一个新变量让我们说
$aData并用你的foreach循环插入那里的值。 span> -
您不需要第二个数组来实现这一点。而不是
foreach使用for循环并遍历数组的长度并使用 for 循环的索引变量,将您想要的任何内容添加到数组中。