在foreach PHP-Laravel中向数组元素添加一个新字段
我有一个变量:在foreach PHP-Laravel中向数组元素添加一个新字段,php,arrays,laravel,foreach,Php,Arrays,Laravel,Foreach,我有一个变量: $families = array( array( 'expand' => '', 'family_id' => 'AAER', 'active' => true, 'description' => 'Wall Art', 'group_id' => 5 ), array( 'expand'
$families = array(
array(
'expand' => '',
'family_id' => 'AAER',
'active' => true,
'description' => 'Wall Art',
'group_id' => 5
),
array(
'expand' => '',
'family_id' => 'EERR',
'active' => true,
'description' => 'Personalised Mugs',
'group_id' => 4
),
);
我想在我的$families项目中添加一个名为“href”的字段,如下所示:
$families = array(
array(
'href' => 'http://mipage/wall-art/AAER',
'expand' => '',
'family_id' => 'AAER',
'active' => true,
'description' => 'Wall Art',
'group_id' => 5
),
array(
'href' => 'http://mipage/personalised-mug/EEER',
'expand' => '',
'family_id' => 'EERR',
'active' => true,
'description' => 'Personalised Mugs',
'group_id' => 4
),
);
为此,我在foreach循环中迭代$families:
foreach($cat['families'] as $cat_fam) {
$cat['families'][]['href'] = 'http//mysite/'.str_slug($cat_fam).'/'.$cat_fam['family_id'];
}
但这对我不起作用
我如何才能做到这一点?您必须使用特定的
键重新拼空[]
。对于此更新,foreach
块获取元素的键
,并在foreach
循环中使用该键
$cat['families'][$key]
它指向families数组的单个元素
像这样,
foreach($cat['families'] as $key=>$cat_fam) {
$cat['families'][$key]['href'] = 'http//mysite/'.str_slug($cat_fam).'/'.$cat_fam['family_id'];
}
演示:您必须使用特定的键重新拼空[]
。对于此更新,foreach
块获取元素的键
,并在foreach
循环中使用该键
$cat['families'][$key]
它指向families数组的单个元素
像这样,
foreach($cat['families'] as $key=>$cat_fam) {
$cat['families'][$key]['href'] = 'http//mysite/'.str_slug($cat_fam).'/'.$cat_fam['family_id'];
}
演示:只需在数组上迭代,然后添加一个键ahref
$newArray= array();
foreach($families as $innerArray){
$innerArray['ahref']='YOUR LINK HERE';
$newArray[] = $innerArray;
}
$families = $newArray ;//if you want to update families array
只需迭代数组,并添加一个键ahref
$newArray= array();
foreach($families as $innerArray){
$innerArray['ahref']='YOUR LINK HERE';
$newArray[] = $innerArray;
}
$families = $newArray ;//if you want to update families array
做一些类似于:
$href = array('href'=>'http://mipage/wall-art/AAER');
$combined_array = array_combine($families[0],$href);
不进行测试,但您可以根据自己的使用尝试或修改,例如:
$href = array('href'=>'http://mipage/wall-art/AAER');
$combined_array = array_combine($families[0],$href);
不测试,但您可以根据自己的使用尝试或修改请尝试以下操作:
我想你也忘了在stru slug
调用中添加索引description
foreach($cat['families'] as &$cat_fam) {
$cat_fam['href'] = 'http://mysite/'.str_slug($cat_fam['description']).'/'.$cat_fam['family_id'];
}
请试试这个:
我想你也忘了在stru slug
调用中添加索引description
foreach($cat['families'] as &$cat_fam) {
$cat_fam['href'] = 'http://mysite/'.str_slug($cat_fam['description']).'/'.$cat_fam['family_id'];
}
您可以使用php函数
列克:
array_walk($cat['families'], function(&$family){
$family['href'] = 'http//mysite/'.str_slug($family).'/'.$family['family_id'];
});
注意$family变量是通过引用传递的。您可以使用php函数
列克:
array_walk($cat['families'], function(&$family){
$family['href'] = 'http//mysite/'.str_slug($family).'/'.$family['family_id'];
});
注意,$family变量是通过引用传递的。您需要指定它是如何工作的…您需要指定它是如何工作的…它应该是$newArray[]=$innerray代码>相反。@AlokPatel是的,输入错误,实际上我在我的机器上快速测试了输出并在这里更新了它。。它应该是$newArray[]=$innerArray代码>相反。@AlokPatel是的,输入错误,实际上我很快在我的机器上测试了输出,并在这里进行了更新。。