0

簡単な質問; foreach()から正しい配列を削除するにはどうすればよいですか?

foreach ( $items as $e):
    if ( $e['seat'] == $users[$clientID]['seat']):
        //It's done, delete it.
        unset ( $e );
    endif;
endforeach;

unset($ e)が正しく機能していないようです。適切なインデックスから適切な配列を削除するための適切な解決策は何ですか?

4

3 に答える 3

4

これは、xbonez が提供する for ループの代わりに、key値も渡すことによって実現します。

foreach ( $items as $key => $e):
    if ( $e['seat'] == $users[$clientID]['seat']):
        //It's done, delete it.
        unset ( $items[$key] );
    endif;
endforeach;

私はこのバージョンの方が好きですが、それは問題ではありません!

于 2013-01-13T21:52:35.783 に答える
1

で行うunset($e)と、変数が表す配列内の項目ではなく、foreach変数の設定が解除されます。$eこれには通常のforループを使用する必要があります

for($i = 0; $i < count($items); $i++) {
   if ($items[$i]['seat'] == $users[$clientID]['seat']) {
      unset($items[$i])
   }
}
于 2013-01-13T21:51:28.637 に答える
1

次のようなものを試してください:

foreach ($items as &$e):
    if ($e['seat'] == $users[$clientID]['seat']):
        //It's done, delete it.
        unset ($e);
    endif;
endforeach;
于 2013-01-13T21:52:28.347 に答える