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

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

WBOY
發布: 2016-08-10 09:07:31
原創
1219 人瀏覽過

<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>
登入後複製
相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板