首頁 >後端開發 >php教程 >深入foreach迴圈和unset()函數問題,大神跟我解釋一下

深入foreach迴圈和unset()函數問題,大神跟我解釋一下

WBOY
WBOY原創
2016-08-10 09:07:311222瀏覽

<code>   foreach($arr as $key=>$val){
        if(in_array($val,$pattern)){
            unset($arr[$key]);
             break;
        }
    }   
    
     foreach($arr as $key=>$val){
        if(in_array($val,$pattern)){
            unset($val);
             break;
        }
    }
    
    
    贴了部分代码,我就想问一下unset()函数时,为什么是unset($arr[$key]);而不是unset($val);不知道懂不懂我的意思</code>

回覆內容:

<code>   foreach($arr as $key=>$val){
        if(in_array($val,$pattern)){
            unset($arr[$key]);
             break;
        }
    }   
    
     foreach($arr as $key=>$val){
        if(in_array($val,$pattern)){
            unset($val);
             break;
        }
    }
    
    
    贴了部分代码,我就想问一下unset()函数时,为什么是unset($arr[$key]);而不是unset($val);不知道懂不懂我的意思</code>

我簡單的說一下差別:

unset($arr[$key]) //銷毀掉的是 $arr這個陣列裡面的一個元素

unset($val) //銷毀掉的時候$val這個變數,這個變數是$arr裡的一個元素,相當於重新開了一個變數,你銷毀這個重新開的變數不會影響到原數組$arr .

不知道你有什麼疑問沒有?

<code>foreach($arr as $key=>$value)
{    
    $key和$value //这里是重新初始化的一个全新的变量,和 $arr 无关
}</code>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn