Php 计数、高亮显示和打印两个阵列之间的副本

Php 计数、高亮显示和打印两个阵列之间的副本,php,arrays,Php,Arrays,首次在stackoverflow上过帐 在打印主数组后,我已设法突出显示在第二个数组中找到的值,但我还想打印括号中同时出现重复的次数。我已经用尽了如何做最后一部分的想法,我陷入了多个循环和其他问题。我会把现在有用的东西贴在这里 守则: $main = array( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 ); $secondary = array( 1, 6, 1

首次在stackoverflow上过帐

在打印主数组后,我已设法突出显示在第二个数组中找到的值,但我还想打印括号中同时出现重复的次数。我已经用尽了如何做最后一部分的想法,我陷入了多个循环和其他问题。我会把现在有用的东西贴在这里

守则:

$main = array( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 
               12, 13, 14, 15, 16, 17, 18, 19, 20 );

$secondary = array( 1, 6, 10, 6, 17, 6, 17, 20 );

foreach ( $main as $number )

{

if ( in_array( $number, $secondary ) ) 

{

echo $item;

// this one is supposed to be highlighted, but the html code disappears on stackoverflow

/* this is where the number of duplicates should appear in bracket, example: 

highlighted number( number of duplicates ) */

 }

else

{

echo $item;

// this one is simple

}
}
预期结果:

1(1)、2、3、4、5、6(3)、7、8、9、10(1)、11、12、13、14、15、16、17(2)、18、19、20(1)

基本上,括号包含在第二个数组中找到值的次数,除了颜色,但由于某种原因,我无法粘贴html代码。很抱歉,没有使预期结果更清楚

解决的问题:
感谢大家的帮助,第一次使用这个网站,没想到你们的反应这么快。多谢各位

假设$secondary是一个有重复项的,您应该用另一种方式:

$dupes = array();
foreach($secondary as $number) {
   if (in_array($number, $main)) {
      $dupes[$number]++;
   }
}
var_dump($dupes);

您需要首先使用获取
辅助
数组的计数值。这是你可以作为一名教师获得的

$main = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20);

$secondary = array(1, 6, 10, 6, 17, 6, 17, 20);
$count_values = array_count_values($secondary);

foreach ($main as $key => $value) {
    if (in_array($value, $secondary)) {
        echo $value . "<strong>(" . $count_values[$value] . ")</strong>";
        echo ( ++$key == count($main)) ? '' : ',';
    } else {
        echo $value;
        echo ( ++$key == count($main)) ? '' : ',';
    }
}
$main=array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);
$secondary=数组(1,6,10,6,17,6,17,20);
$count\u values=数组\u count\u values($secondary);
foreach($main作为$key=>$value){
if(在_数组中($value,$secondary)){
echo$value.“(“$count_values[$value])””;
echo(++$key==count($main))?“:”,”;
}否则{
echo美元价值;
echo(++$key==count($main))?“:”,”;
}
}
输出:


1(1)、2、3、4、5、6(3)、7、8、9、10(1)、11、12、13、14、15、16、17(2)、18、19、20(1)

请发布您的预期结果。这不是我想要的,但谢谢您的帮助。我将以预期的结果编辑我的原始帖子。谢谢你的回答。它解决了我的问题。
   <?php
    $main = array( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,12, 13, 14, 15, 16, 17,18,19,20);
    $secondary = array( 1, 6, 10, 6, 17, 6, 17, 20 );
    $result =array();
    foreach($main as $key => $value){
        $i=0;
        foreach($secondary as $key1 => $value1){
            if($value == $value1){
                $i++;
            }
            $result[$value] = $i;
       }
    }
     $resultString  ='';
    foreach($result as $key => $value){
     $resultString .=$key.'('.$value.'),' ;
    }
   echo trim($resultString,',');
    ?>
1(1),2(0),3(0),4(0),5(0),6(3),7(0),8(0),9(0),10(1),11(0),12(0),13(0),14(0),15(0),16(0),17(2),18(0),19(0),20(1)