我想取消设置二维数组的字段。我有这样的功能,但它不工作:为什么我不能取消设置数组值(PHP)
function excludeOldScreeningDate($array){
foreach($array as $val){
if($val['ref'] == 'G'){
unset($val['screening_date']);
}
}
return $array;
}
我想取消设置二维数组的字段。我有这样的功能,但它不工作:为什么我不能取消设置数组值(PHP)
function excludeOldScreeningDate($array){
foreach($array as $val){
if($val['ref'] == 'G'){
unset($val['screening_date']);
}
}
return $array;
}
你应该通过引用传递数组的元素:
function excludeOldScreeningDate($array){
foreach($array as &$val){
if($val['ref'] == 'G'){
unset($val['screening_date']);
}
}
return $array;
}
通知的foreach($array as &$val){
线已经改变。
因为你只解封临时变量$ VAL
function excludeOldScreeningDate($array){
foreach($array as $index => $val){
if($val['ref'] == 'G'){
unset($array[$index]['screening_date']);
}
}
return $array;
如果你想在阵列中编辑值,你可以通过引用读取每个数组元素。将&
放在$val
的前面foreach
。
function excludeOldScreeningDate($array){
foreach($array as &$val){
if($val['ref'] == 'G'){
unset($val['screening_date']);
}
}
return $array;
}
它为什么不起作用?你期望输出什么?你得到了什么输出? – 2011-09-09 21:15:41
@JackManey:因为他没有设置临时变量$ val – genesis