Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将数组元素分组并显示总数_Php_Arrays - Fatal编程技术网

Php 将数组元素分组并显示总数

Php 将数组元素分组并显示总数,php,arrays,Php,Arrays,我试图将数组中的相同元素值分组,然后在数组组的末尾显示其总数。我可以在数组组计数上升时显示它,但我只想在末尾显示最终的总数,如下所示: 期望输出 A 相同的信息 相同的信息 相同的信息 总计4个 B 相同的信息 相同的信息 相同的信息 相同的信息 总计5个 输出 A 1 相同的信息 2 相同的信息 3 相同的信息 4 B 1 相同的信息 2 相同的信息 3 相同的信息 4 相同的信息 5 $arr=array(); $arr[]=“A”; $arr[]=“A”; $arr[]=“A”; $arr

我试图将数组中的相同元素值分组,然后在数组组的末尾显示其总数。我可以在数组组计数上升时显示它,但我只想在末尾显示最终的总数,如下所示:

期望输出 A
相同的信息
相同的信息
相同的信息
总计4个
B
相同的信息
相同的信息
相同的信息
相同的信息
总计5个

输出 A
1
相同的信息
2
相同的信息
3
相同的信息
4
B
1
相同的信息
2
相同的信息
3
相同的信息
4
相同的信息
5

$arr=array();
$arr[]=“A”;
$arr[]=“A”;
$arr[]=“A”;
$arr[]=“A”;
$arr[]=“B”;
$arr[]=“B”;
$arr[]=“B”;
$arr[]=“B”;
$arr[]=“B”;
$f=“”;
$total=0;
foreach($arr作为$a)
{
$c=$a;
如果($c!=$f){
$f=$c;
$total=1;
回声$a.“
”; }否则{ $total++; 回显“相同信息
”; } echo$total.“
”; }
嗯,我想你需要这个代码。在显示$total之前,我添加了一个条件,条件是下一个元素与当前元素不同,或者下一个元素不存在

   foreach ($arr as $key => $a) 
   {
      $c = $a;
      if ($c != $f) 
      {
         $f = $c;
         $total = 1;
         echo $a . "<br>";
      } 
      else 
      {
         $total++;
         echo 'Same Info <br>';
      }
      if(isset($arr[$key+1])&&$arr[$key+1]!=$a || !isset($arr[$key+1]))
         echo "Total " .  $total . "<br>";
   }
foreach($arr as$key=>$a)
{
$c=$a;
如果($c!=$f)
{
$f=$c;
$total=1;
回声$a.“
”; } 其他的 { $total++; 回显“相同信息
”; } 如果(isset($arr[$key+1])&&$arr[$key+1]!=$a | |!isset($arr[$key+1])) 回显“总计”。$Total.“
”; }
为了测试下一个元素是否存在,我在foreach外观上添加了
$key
,每个迭代中的下一个元素是
$arr[$key+1]

   foreach ($arr as $key => $a) 
   {
      $c = $a;
      if ($c != $f) 
      {
         $f = $c;
         $total = 1;
         echo $a . "<br>";
      } 
      else 
      {
         $total++;
         echo 'Same Info <br>';
      }
      if(isset($arr[$key+1])&&$arr[$key+1]!=$a || !isset($arr[$key+1]))
         echo "Total " .  $total . "<br>";
   }