zes*_*ssx 8 php arrays foreach
我正在尝试在foreach循环内动态编辑数组.我基本上分析每个键,如果这个键匹配我想要的键,我想在这个键之后立即在数组中添加另一个键.
如果我拿这个代码,
$values = array(
'foo' => 10,
'bar' => 20,
'baz' => 30
);
foreach($values as $key => $value){
print $value . ' ';
if($key == 'bar'){
$values['qux'] = 21;
}
}
Run Code Online (Sandbox Code Playgroud)
我有两个问题,
10 20 30而不是预期10 20 30 21我怎么能qux在bar和之间添加条目baz?
谢谢你的想法.
Lar*_*ert 13
在循环内部,Foreach不会循环添加到数组中的新值.
如果要在两个现有值之间添加新值,可以使用第二个数组:
$values = array(
'foo' => 10,
'bar' => 20,
'baz' => 30
);
$newValues = array();
foreach($values as $key => $value)
{
$newValues[$key] = $value;
if($key == 'bar')
{
$newValues['qux'] = 21;
}
}
print implode(' ', $newValue);
Run Code Online (Sandbox Code Playgroud)
另外,请参阅StackOverflow讨论foreach循环的一个我最喜欢的问题:PHP"foreach"实际上如何工作?
您可以在值之前使用 & 符号。
//populate all the promos into their promoG groups
foreach($unclaimedPromoGroups as &$unclaimedPromoGroup) {
$_promo = new Promo();
$_promo->promoGroupID = $unclaimedPromoGroup['promo_groupID'];
$promo = $_promo->getGroupPromos();
$unclaimedPromoGroup["promos"] = $promo;
}
Run Code Online (Sandbox Code Playgroud)