作者mecumi ()
看板PHP
標題[請益] 巢狀foreach
時間Fri Jun 24 16:14:04 2011
<?php
$arr1 = array(1, 2, 3, 4);
$arr2 = array(3, 6, 7);
if (checkHasSameValue($arr1, $arr2)) {
echo "arr1, arr2 has same value";
}
function checkHasSameValue($arr1, $arr2) {
foreach ($arr1 as $val1) {
foreach ($arr2 as $var2) {
echo "checking $var1, $var2\n";
if ($var1 == $var2) {
return true;
}
}
}
return false;
}
?>
$arr1和$arr2有相同的元素3,
但是卻沒印出 "arr1, arr2 has same value",
checkHasSameValue echo 出的訊息是
checking , 3
checking , 6
checking , 7
checking , 3
checking , 6
checking , 7
checking , 3
checking , 6
checking , 7
checking , 3
checking , 6
checking , 7
代表第二個foreach找不到第一個foreach的$var1,
有點搞不懂為什麼會抓不到$var1, 既然是同一個區塊,
那個第二個foreach應該也在$var1的變數範圍裡,
懇請高手解惑, 謝謝.
OA
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.170.104.125
1F:→ terlin10:因為你打成val1了~XD 06/24 16:21
2F:→ chrisQQ:雖然離題,不過同樣的功能可以用 array_intersect XD 06/24 16:29
3F:→ mecumi:哈哈..沒注意到打錯字...感恩 06/24 16:32