2011-09-09 80 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; 
    } 
相關問題