<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>