PHP 输出一个数组中一个数值连续出现的次数(或者只输出连续出现的最大值)
比如一个数组里面的值为00101111000100000111001输出0最多连续出现了5次用PHP实现谢谢各位了!...
比如一个数组里面的值为0 0 1 0 1 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 0 0 1 输出0最多连续出现了5次 用PHP实现 谢谢各位了!
展开
5个回答
展开全部
$numberArray = array(0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1);
$str = implode('', $numberArray);
$Tokens = explode('1', $str);
$maxCount = 0;
foreach ($Tokens as $oneToken) {
if ($oneToken == '')
continue;
$length = strlen($oneToken);
if ($length > $maxCount)
$maxCount = $length;
}
echo $maxCount;
这个方法只是针对你给的数据进行运算的 如果真实数据格式与此数据格式差异较大就不好使了
展开全部
<?php
$arr = array(0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1);
$num = 0; //记录当前的数字
$t = 1; //记录当前序列的长度
$maxnum = 0; //当前最长序列的数字
$maxt = 0; //记录当前最长序列的长度
$arrt = count($arr);
$num = $arr[0];
for($i=1; $i<$arrt; $i++){
if($arr[$i]==$num){
$t++;
}else{
//当前的数字与前面的不一样时
if($t>$maxt){
$maxt = $t;
$maxnum = $num;
}
$num = $arr[$i];
$t = 1;
}
}
echo $maxnum.",".$maxt;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<?php
$array = [2,1,2,1,0,0,1,0,2,0,1,1,0,1,1,1,2,2,1,0];
$arr = [];
$count = 0;
$key=0;
foreach($array as $vo){
if($vo == 0){ //需要统计连续出现的数字
$count++;
$arr[$key] = $count;
}else{
if(isset($arr[$key])){
$key++;
}
$count = 0;
continue;
}
}
print_r($arr);
echo "<br />";
echo max($arr);
$array = [2,1,2,1,0,0,1,0,2,0,1,1,0,1,1,1,2,2,1,0];
$arr = [];
$count = 0;
$key=0;
foreach($array as $vo){
if($vo == 0){ //需要统计连续出现的数字
$count++;
$arr[$key] = $count;
}else{
if(isset($arr[$key])){
$key++;
}
$count = 0;
continue;
}
}
print_r($arr);
echo "<br />";
echo max($arr);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1 <?php
2 $array = array(0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1);
3 $num = 0;
4
5 $str = implode("",$array);
6
7 preg_match_all("/$num+/",$str,$temp_array);
8
9 $max = 0;
10 foreach($temp_array[0] as $value){
11
12 if(strlen($value) > $max){
13
14 $max = strlen($value);
15 }
16 }
17
18 echo $max;
19 ?>
2 $array = array(0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1);
3 $num = 0;
4
5 $str = implode("",$array);
6
7 preg_match_all("/$num+/",$str,$temp_array);
8
9 $max = 0;
10 foreach($temp_array[0] as $value){
11
12 if(strlen($value) > $max){
13
14 $max = strlen($value);
15 }
16 }
17
18 echo $max;
19 ?>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给你函数吧,记得采纳哦
$arr=array(0 ,0, 1 ,0 ,1 ,1, 1 ,1 ,0, 0, 0 ,1 ,0 ,0 ,0, 0, 0, 1, 1, 1, 0, 0 ,1);
$b=array_count_values($a);
print_r($b);
$arr=array(0 ,0, 1 ,0 ,1 ,1, 1 ,1 ,0, 0, 0 ,1 ,0 ,0 ,0, 0, 0, 1, 1, 1, 0, 0 ,1);
$b=array_count_values($a);
print_r($b);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询