QUOTE:
原帖由 zsycnc 于 2008-10-6 21:07 发表 请教怎样查找,01,02,04,06,08,09,10,0,12这里面有几个相邻数,相邻数就是里面的01 02 和08,09,10 谢谢
CODE:
sort($arr1); foreach($arr1 as $index => $value) { if(isset($arr1[$index + 1]) && $value + 1 == $arr1[$index + 1] || $index > 0 && $value - 1 == $arr1[$index - 1]) { echo $value, ','; } }
最新回复
??相邻是啥??
谢谢
谢谢
QUOTE:
也就是怎样知道有几组像01 02 和08,09,10这样的数。上面是两组.谢谢。
直接写的,没有测试,大概思路如此
谢谢你,按你的方法搞定了相连的数。
[ 本帖最后由 zsycnc 于 2008-10-6 23:59 编辑 ]
[ 本帖最后由 异度冰晶 于 2008-10-7 09:32 编辑 ]
$hh ="03,04,07,08,09,10,11";
$arr1 = explode(",",substr($gg,0,14));
$fff = explode(",",substr($hh,0,14));
//echo substr($gg,0,14);
$a11 =array("a","b","c","h","j");
$a12 =array("b","c","j","e","h");
$ch = 0;
$lh = 0;
sort($a11);
foreach($a11 as $index => $value) {
if($index == 0 && $value + 1 === $arr1[$index + 1] || $value - 1 === $arr1[$index - 1]) {
echo $value;
}
}
你的方法无显示。
$gg ="01,02,08,09,10,15,11";
$hh ="03,04,07,08,09,10,11";
$arr1 = explode(",",substr($gg,0,14));
$fff = explode(",",substr($hh,0,14));
谢谢。能再帮改下吗?
还有就是找出$arr1与$fff两个里面相同数的个数吗?上面相同的是08,09,10,11
谢谢
至于相同的数,别人不是跟你说了么,array_intersect
CODE:
sort($arr1);不过你的这个在一个for循环里运行就不准确。我有50多条数组或更多。foreach($arr1 as $index => $value) {
if(isset($arr1[$index + 1]) && $value + 1 == $arr1[$index + 1] || $index > 0 && $value - 1 == $arr1[$index - 1]) {
echo $value, ',';
}
}
你的这行代码更简洁些。我看能不能再改进下。
[ 本帖最后由 zsycnc 于 2008-10-7 11:29 编辑 ]
1)先将数组A排序。
2)复制A到数组B,unset掉数组B的的一项。
3)数组B内所有元素+1。
4)找AB交集。