2011-09-09 3 views
0

2 차원 배열의 필드를 설정 해제하고 싶습니다. 이 같은 기능을 가지고 있지만 작동하지 않습니다배열의 값을 설정 해제 할 수없는 이유 (PHP)

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

왜 작동하지 않습니까? 어떤 산출물을 기대 했습니까? 당신은 어떤 결과를 얻었습니까? –

+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

당신이 임시 변수 $ 발

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

을 해제하기 있기 때문에 당신이 배열의 값을 편집하려면, 당신을 각 배열 요소를 참조로 읽을 수 있습니다. foreach$val 앞에 &을 넣습니다.

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