2011-07-01 144 views
0

在某些情況下,我得到了需要「過濾」的objet的多維數組。這是我寫的函數:在foreach循環中取消設置多維數組中的值

foreach($data["index"] as $key => $value){ 
    if(preg_match("/EXPRESSION/",$value->property)){ 
     unset($data["index"][$key]); 
    } 
} 

它不會返回我任何錯誤,但是當陣列var_dumped,價值觀,我想我已經取消設置仍然存在。

我發現這另一個話題:

foreach ($this->result['list'] as $key => &$row) { 
    if ($this_row_is_boring) { 
     unset($this->result['list'][$key]); 
    } 
} 

我覺得從一個我寫的,唯一不同的是,他稱這 - $>結果,當我調用$的數據。

任何想法?謝謝

回答

0

如果正則表達式不匹配,將永遠不會調用unset()

您能否插入一條語句來確定preg_match()是否曾經返回true?

if(preg_match("/EXPRESSION/",$value->property)){ 
    unset($data["index"][$key]); 
    echo "Match found with \$key: $key\n"; 
}