计算循环内具有相同值的值

Count values with the same value inside loop

我尝试对循环内的元素进行计数,与我在标题中输入的值相同,现在我展示我的小脚本以尝试执行此操作:

<?php
$values="1,2,3~4,5,2~7,2,9";

$expt=explode("~",$values);

foreach ($expt as $expts)
{

$expunit=explode(",",$expts);


$bb="no";

foreach($expunit as $expunits)
{

//// $expunit[1] it´s the second value in each explode

if ($expunits==="".$expunit[1]."")
{
$bb="yes";
}

if ($bb=="yes")
{
print "$expunits --- $expunit[1] ok, value it´s the same<br>";
}
else
{
print " $expunits bad, value it´s not the same<br>";
}

}

}

?>

脚本必须以这种方式显示数据:

  $values="1,2,3~4,5,2~7,2,9";

**第一个元素与第二个元素相同,在共同价值中它是数字 2,因为它在第二个位置 **

第一个:

1,2,3
7,2,9

最后一个

4,5,2

我尝试验证分隔符之间的第二个位置,因为它是我想验证循环内计数的值,而爆炸字符串实际上给出了错误的值,我认为这很糟糕,因为没有得到真实的或正确的值,我不知道是否可以这样做或使用其他脚本或更改此内容

谢谢问候

编辑 - 这更接近您正在寻找的东西(抱歉,它并不完美,因为我没有时间完全研究它):

$values="1,2,3~4,5,2~7,2,9";
$values=explode("~",$values);
foreach($values as $key => $expt) {
  $expit=explode(",",$expt);
  $search_value = $expit[1];
  $matched=array();
  foreach($values as $key2 => $expt2) {
    if($key !== $key2) {
      $expit2=explode(",",$expt2);
      if($expit[1]==$expit2[1]) {
        $matched[] = $expit[1];
      }
    }
  }
}
array_unique($matched);
foreach($matched as $match) {
  $counter = 0;
  $no_matches = array();
  echo "<br />Matching on digit ".$match;
  foreach($values as $key3 => $expt3) {
    $expit3=explode(",",$expt3);
    if($match == $expit3[1]) {
      echo "<br />".$expt3;
      $counter++;
    } else {
      $no_matches[] = $expt3;
    }
  }
  echo "<br />Total number of matches - ".$counter;
  echo "<br />Not matching on digit ".$match;
  foreach($no_matches as $no_match) {
    echo "<br />".$no_match;
  }
}

输出:

匹配数字 2

1,2,3

7,2,9

比赛总数 - 2

数字 2 不匹配

4,5,2