组数组元素并显示总数

时间:2014-07-23 20:17:55

标签: 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";
$arr[] = "B";
$arr[] = "B";
$arr[] = "B";
$arr[] = "B";
$arr[] = "B";
$f = "";

$total = 0;

foreach ($arr as $a) 
{
$c = $a;
if ($c != $f) {
            $f = $c;

            $total = 1;

            echo $a . "<br>";
        } else {
            $total++;

            echo 'Same Info <br>';
        }

        echo $total . "<br>";

    }

1 个答案:

答案 0 :(得分:0)

嗯,我认为你需要这个代码。我在显示$ 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上添加了$key,每次迭代中的下一个元素是$arr[$key+1]