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