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)在 a 中执行foreach取消设置 variable $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 回答