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实现 谢谢各位了! 展开
 我来答
百度网友6a7d11453
2013-08-22 · TA获得超过954个赞
知道小有建树答主
回答量:931
采纳率:50%
帮助的人:712万
展开全部
$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;

 这个方法只是针对你给的数据进行运算的  如果真实数据格式与此数据格式差异较大就不好使了

前端小茶馆
2013-08-22 · TA获得超过962个赞
知道小有建树答主
回答量:329
采纳率:0%
帮助的人:345万
展开全部
<?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;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nairso4840
2020-10-21
知道答主
回答量:1
采纳率:0%
帮助的人:564
展开全部
<?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);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
宇宙大师之一
2013-08-22 · TA获得超过3477个赞
知道小有建树答主
回答量:2271
采纳率:52%
帮助的人:722万
展开全部
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 ?>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wuxinzy
2013-08-22 · TA获得超过247个赞
知道小有建树答主
回答量:267
采纳率:0%
帮助的人:268万
展开全部
给你函数吧,记得采纳哦
$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);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式