为什么我不能取消数组的值(PHP)

时间:2011-09-09 21:14:28

标签: php

我想取消设置二维数组的字段。我得到了这样的功能,但它不起作用:

  function excludeOldScreeningDate($array){
    foreach($array as $val){
      if($val['ref'] == 'G'){
       unset($val['screening_date']);
      }
    }
    return $array;
  }

3 个答案:

答案 0 :(得分:7)

因为你只取消了临时变量$ val

  function excludeOldScreeningDate($array){
    foreach($array as $index => $val){
      if($val['ref'] == 'G'){
       unset($array[$index]['screening_date']);
      }
    }
    return $array;

答案 1 :(得分:2)

您应该通过引用传递数组的元素:

function excludeOldScreeningDate($array){
    foreach($array as &$val){
        if($val['ref'] == 'G'){
            unset($val['screening_date']);
        }
    }
    return $array;
}

请注意foreach($array as &$val){行已更改。

答案 2 :(得分:0)

如果要编辑数组中的值,可以通过引用读取每个数组元素。将&放在$val的{​​{1}}前面。

foreach