我正在尝试将相同的元素值组合在一个数组中,然后在数组的末尾显示它的总数。我可以显示数组的数量,但我只希望显示最终总数,如下所示;
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>";
}
答案 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]