似乎很奇怪我找不到答案,但是这里有:
此:
foreach ($stuffs as $stuffRow) {
foreach ($stuffRow as $stuff) {
if($stuff=== null){
unset($stuff);
}
}
}
无效。
我知道我不应该说“不工作”,但这就是我所拥有的。 if条件有效;我测试过了。但是,当我应用未设置时,key =>值仍然存在。
注意:PHP 5.3
非常感谢提前!
答案 0 :(得分:1)
虽然这可能有用(我从不这样做而且没有测试过):
foreach ($stuffs as &$stuffRow) {
foreach ($stuffRow as &$stuff) {
if($stuff=== null){
unset($stuff);
}
}
}
如果我没记错的话,通过引用传递对foreachs来说不是一个好主意(但不记得为什么,可能已经在某个地方的php doc中,也许有人可以在评论中澄清,但我认为这是因为foreach在数组的副本上工作并传递引用将引用传递给副本,而不是原始引用,尽管这只是一个有根据的猜测)。相反,试试这个。
foreach ($stuffs as $key1=>$stuffRow) {
foreach ($stuffRow as $key2=>$stuff) {
if($stuff=== null){
unset($stuffs[$key1][key2]);
}
}
}
你的代码不能正常工作的原因是因为foreach循环迭代你的数组的COPY。