[英]unset key in multidimensional array via nested foreaches
似乎很奇怪,我無法找到答案,但是這里有:
這個:
foreach ($stuffs as $stuffRow) {
foreach ($stuffRow as $stuff) {
if($stuff=== null){
unset($stuff);
}
}
}
不管用。
我知道我不應該說“不起作用”,但這就是我所擁有的。 如果條件有效; 我已經測試過了 但是,當我應用unset時,key => value仍然存在。
注意:PHP 5.3
提前謝謝了!
盡管這可能會起作用(我從來沒有這樣做,也沒有對其進行測試):
foreach ($stuffs as &$stuffRow) {
foreach ($stuffRow as &$stuff) {
if($stuff=== null){
unset($stuff);
}
}
}
如果我沒記錯的話,按引用傳遞在foreach中不是一個好主意(但不記得為什么,可能已經在php doc中的某個地方,也許有人可以在注釋中進行澄清,但是我認為這是因為foreach可以在a數組的副本並傳遞引用,但會將引用傳遞給副本,而不是原始副本,盡管這只是有根據的猜測)。 相反,請嘗試此。
foreach ($stuffs as $key1=>$stuffRow) {
foreach ($stuffRow as $key2=>$stuff) {
if($stuff=== null){
unset($stuffs[$key1][key2]);
}
}
}
您的代碼無法順便工作的原因是因為foreach循環在數組的COPY上進行迭代。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.