计算循环内具有相同值的值
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
我尝试对循环内的元素进行计数,与我在标题中输入的值相同,现在我展示我的小脚本以尝试执行此操作:
<?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