2011-09-09 17 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

をあなただけの一時的な変数$ valの

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; 
    } 
関連する問題