dqxyh48864 2017-02-09 11:07
浏览 21
已采纳

推送数组PHP的每个字段

In n array which every element is an associative array,on every child array I want to push the same field with this function,but it doesn't work.

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

2条回答 默认 最新

  • dongpangzan6425 2017-02-09 11:11
    关注

    You are only editing the $field elements inside your foreach, but aren't actually editing your original $data array.

    A foreach loop works by copying each value into a temporary variable.

    If you want to edit the original array, you have two solutions :

    Either pass the value with a reference, using & :

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

    Or use the $key=>$value notation and edit the original array :

    foreach ($data as $key => $field) {
        $data[$key]['button'] = '<input data-id="'.$field['id'].'" type="submit">';
    } 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大