<?php
$zdarr = array(0 => 4,
1 => 4,
2 => 7,
3 => 3,
4 => 1,
5 => 1,
6 => 2,
7 => 1,
8 => 3,
9 => 1,
10 => 1,
11 => 1,
12 => 1);echo zdlcs($zdarr);/*
*计算最大连出数
*/
function zdlcs($arr){
$count = count($arr); //这中间怎么写啊?? return 4;
}?>
$zdarr = array(0 => 4,
1 => 4,
2 => 7,
3 => 3,
4 => 1,
5 => 1,
6 => 2,
7 => 1,
8 => 3,
9 => 1,
10 => 1,
11 => 1,
12 => 1);echo zdlcs($zdarr);/*
*计算最大连出数
*/
function zdlcs($arr){
$count = count($arr); //这中间怎么写啊?? return 4;
}?>
1 => 4,
2 => 7,
3 => 3,
4 => 1,
5 => 1,
6 => 2,
7 => 1,
8 => 3,
9 => 1,
10 => 1,
11 => 1,
12 => 1); function GetMaxRepeat($arr){
$count = array_count_values($arr);
foreach($count as $key=>$value){
if($value>1){
$newstr[]=$key;
}
}
return max($newstr);
}
echo GetMaxRepeat($a);//返回4
rsort($arr);
$i=0;
foreach($arr as $value){
if($value==$i){
return $value;
}
$i=$value;
}
} echo zdlcs($a);
foeach ,并用一个值保存当前的的值,如果相等,则个数 +1
如果不等,则重新赋那个标志的值,个数设为 1
$m = 1;$arr2 = array();
$count = count($arr);
for($i = 0;$i<$count;$i++){
for($j = $i+1;$j<=$count;$j++){
if($arr[$j]==$arr[$i]){
$m++;
}
else{
$arr2[] = $m;
$m = 1;
break;
}
}
}
rsort($arr2);
return $arr2[0];
}
1 => 4,
2 => 7,
3 => 3,
4 => 1,
5 => 1,
6 => 2,
7 => 1,
8 => 3,
9 => 1,
10 => 1,
11 => 1,
12 => 1,
13 => 4
);function test($zdarr)
{
$count = 0;
$max = 0;
foreach($zdarr as $v) {
if($v == $value) {
$count++;
}
else {
$value = $v;
$count = 1;
}
if($count>$max) {
$max = $count;
}
} return "$max";
}
exit(test($zdarr));//4
<?php $zdarr = array(0 => 4,
1 => 4,
2 => 7,
3 => 3,
4 => 1,
5 => 1,
6 => 2,
7 => 1,
8 => 3,
9 => 1,
10 => 1,
11 => 1,
12 => 1); function zdlcs($zdarr)
{
$max = 0;
$count=1;
foreach ($zdarr as $key=>$v) {
if ($zdarr[$key+1]==$v ){
$count = $count+1;
}
elseif($max<$count){
$max=$count;
$count = 1;
}
else{
$count = 1;
}
} return "$max";
}
exit(zdlcs($zdarr));
<?php
$zdarr =array(0=> 4,
1 => 4,
2 => 7,
3 => 3,
4 => 2,
5 => 2,
6 => 2,
7 => 2,
8 => 2,
9 => 2,
10 => 2,
11 => 1,
12 => 1); echo $a= zdlcs($zdarr);
//print_r($a);
/*
*计算最大连出数
*/
function zdlcs($arr){
$count = count($arr);
$brr=implode($arr);
$crr=array();
for($i=1;$i<=9;$i++){
$mode="/[$i]/";
$num=preg_match_all($mode,$brr,$drr);
if($num>=1){
$crr[$i]=$num;
}}
//rsort($crr);
for($j=1;$j<count($crr);$j++){
for($k=1;$k<count($crr);$k++){
if($j!=$k){
if($crr[$j]<$crr[$k]){
break;
}else
{
return $j;
}
} }
}}?>
不过我们公司有个小弟用另外一种方式算出来的。
$b = array(0=>4,
1=>5,
2=>8,
3=>9,
4=>10,
5=>13);
/**
* 计算最大连出数
*
* @param $arr 被计算的数组
*
* @return max($tmp) 最大连出数
*
*/
function zdlccs($arr){
array_push($arr,'');
$geshu = 1;
foreach($arr as $key => $value){
if($key == 0) continue;
if(($value - $arr[$key-1])==1){
$geshu++;
}else{
$tmp[]=$geshu;
$geshu = 1;
}
}
return max($tmp);
}
echo zdlccs($b); //返回3