2011-09-09 41 views
0

我想取消设置二维数组的字段。我有这样的功能,但它不工作:为什么我不能取消设置数组值(PHP)

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

它为什么不起作用?你期望输出什么?你得到了什么输出? – 2011-09-09 21:15:41

+2

@JackManey:因为他没有设置临时变量$ val – genesis

回答

2

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

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

通知的foreach($array as &$val){线已经改变。

7

因为你只解封临时变量$ VAL

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

如果你想在阵列中编辑值,你可以通过引用读取每个数组元素。将&放在$val的前面foreach

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