在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 ++; }' –