推送数组PHP的每个字段

时间:2017-02-09 11:07:48

标签: php

在n数组中,每个元素都是一个关联数组,在每个子数组上我想用这个函数推送相同的字段,但它不起作用。

function setButton($data){
    foreach ($data as $field) {
        $field['button'] = '<input data-id="'.$field['id'].'" type="submit">';
    }
    return $data;
}

2 个答案:

答案 0 :(得分:3)

您只是在编辑foreach中的$field元素,但实际上并未编辑原始的$data数组。

foreach循环的工作原理是将每个值复制到临时变量中。

如果要编辑原始阵列,可以使用两种解决方案:

使用&amp;参数传递值。 :

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 :(得分:0)

因为你的钥匙不是动态的。所以,每次都压倒一切。

function setButton($data){
    foreach ($data as $field) {
        $field[]['button'] = '<input data-id="'.$field['id'].'" type="submit">';
    }
    return $data;
}