在n数组中,每个元素都是一个关联数组,每个子数组上我都想用这个函数推送相同的字段,但它不起作用。推送数组的每个字段PHP
function setButton($data){
foreach ($data as $field) {
$field['button'] = '<input data-id="'.$field['id'].'" type="submit">';
}
return $data;
}
在n数组中,每个元素都是一个关联数组,每个子数组上我都想用这个函数推送相同的字段,但它不起作用。推送数组的每个字段PHP
function setButton($data){
foreach ($data as $field) {
$field['button'] = '<input data-id="'.$field['id'].'" type="submit">';
}
return $data;
}
你只是编辑的foreach内$field
元素,但实际上并没有编辑原始$data
阵列。
A foreach
循环通过将每个值复制到临时变量中工作。
如果你想编辑原始数组,有两种解决方法:
无论是用引用传递的值,使用&:
foreach ($data as &$field) {
$field['button'] = '<input data-id="'.$field['id'].'" type="submit">';
}
或者使用$key=>$value
符号和编辑原始阵列:
foreach ($data as $key => $field) {
$data[$key]['button'] = '<input data-id="'.$field['id'].'" type="submit">';
}
哦,我得到了我的代码漏洞。删除我的答案和+1给你 –
由于您的密钥不是动态的。所以,每次都是压倒一切的。
function setButton($data){
foreach ($data as $field) {
$field[]['button'] = '<input data-id="'.$field['id'].'" type="submit">';
}
return $data;
}
为什么反对投票?请给出理由... – Naincy
奈尼西我不是down-voter,但这是无法解决的问题。阅读: - '我想用这个函数推动同一个字段的每个子数组'?罗伯托给出的正确答案 –
我希望你明白了我的观点 –
您不能这样做,因为相同的索引会将新值替换为较旧的值。备用是: - '$ i = 0; foreach($ data as $ field){$ i] ['button'] =''; $ I ++; }' –