Php 数组比较如果值存在则在索引中添加值,否则为0

Php 数组比较如果值存在则在索引中添加值,否则为0,php,Php,输入: 我想要这个输出: 我的输出是0,0,0,0 我想比较两个长度不同的数组,如果匹配,则添加值,如果不匹配,则添加“0”,并在赋值后跳过,转到第一个循环 我的代码: for($i=0;$i<count($custt1);$i++){ for($j=0;$j<count($items);$j++){ if($items[$j]==$custt1[$i]){ $x[$j]=$rating[$j]; }

输入:

我想要这个输出: 我的输出是0,0,0,0

我想比较两个长度不同的数组,如果匹配,则添加值,如果不匹配,则添加“0”,并在赋值后跳过,转到第一个循环

我的代码:

for($i=0;$i<count($custt1);$i++){

    for($j=0;$j<count($items);$j++){

        if($items[$j]==$custt1[$i]){
            $x[$j]=$rating[$j]; 
        }
        else{   
            $x[$j]=0;
        }
    }

    for($j=0;$j<count($items1);$j++){

        if($items1[$j]==$custt1[$i]){
            $y[$j]=$rating1[$j];
        }
        else{
            $y[$j]=0;
        }
    }   
}
($i=0;$i=3)的

[3] => 0
[4] => 5
[5] => 
[6] => 0
[7] => 0
[8] => 0
) 
因为我正在实施推荐系统

<?php
    $dbhost = "localhost";
    $dbuser = "root";
    $dbpass = "";
    $dbname = "hfc";
    $array;
    $connection = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);

if ($connection) {
$sql1="SELECT item_name
from feedback

GROUP BY item_name";

$sql="SELECT customer_email_address AS customeremail,
        GROUP_CONCAT(
           DISTINCT CONCAT(cook_email_address,'-',item_name,'-',rating)
        ) AS uniqueItem
   FROM feedback
GROUP BY customer_email_address";

$result = mysqli_query($connection, $sql);
    while ($row = mysqli_fetch_array($result)) 
    {

  $customer_email[] = $row['customeremail'];
    $cust1[]= $row['uniqueItem'].",";
  }



$item[] = explode(",",$cust1[0]);



for($i=0;$i<count($item[0])-1;$i++){
$item_rating[] = explode("-",$item[0][$i]);
}
  print_r ($item_rating);
for($i=0;$i<count($item_rating);$i++){

        $items[]=$item_rating[$i][1];
        $rating[]=$item_rating[$i][2];


}



$item1[] = explode(",",$cust1[1]);


for($i=0;$i<count($item1[0])-1;$i++){
$item_rating1[] = explode("-",$item1[0][$i]);
}
  print_r ($item_rating1);
for($i=0;$i<count($item_rating1);$i++){

        $items1[]=$item_rating1[$i][1];
        $rating1[]=$item_rating1[$i][2];


}



$result1 = mysqli_query($connection, $sql1);
  while ($row = mysqli_fetch_array($result1)) 
    {
    $custt1[]= $row['item_name'];

  }
  print_r ($custt1);
 print_r ($items);
 $output = array();
foreach ($custt1 as  $i =>$item) {

    if (in_array($item, $items)) {
        $output[] = $rating[$i];


    } else {
        $output[] = 0;

    }




}

 print_r ($output);
for($i=0;$i<count($custt1);$i++){

    for($j=0;$j<count($items);$j++){



        if($items[$j]==$custt1[$i]){


        $x[$i]=$rating[$j];

        }
        else{

            $x[$i]=0;



        }


    }


    for($j=0;$j<count($items1);$j++){

        if($items1[$j]==$custt1[$i]){
            $y[$j]=$rating1[$j];

        }

        else{

            $y[$j]=0;

        }
    }


}





 print_r ($x);
 print_r ($y);





  for($i1=0;$i1<count($custt1);$i1++)
  {

     $array[]=explode(",",$custt1[$i1]);  
  }
  // echo count($array);
 // print_r($custt1)."<br>";


  /*for($i=0;$i<count($array);$i++)
  {
     for($y=1;$y<count($array);$y++)
     {
         $pearson=Corr($array[$i],$array[$y],$c=count($array));
     }

  }*/
  $pearson=Corr($array);

   echo $pearson;
}

function Corr(&$arr){
    $x=$arr[0];
    $y=$arr[1];
$length=count($x)-1;

$mean1=array_sum($x)/ $length;
$mean2=array_sum($y)/ $length;

echo $mean1."mean of x";
echo $mean2."mean of y";
echo "\n";
//echo $mean2;

$a=0;
$b=0;
$axb=0;
$a2=0;
$b2=0;

for($i=0;$i<$length;$i++)
{
$a=$x[$i]-$mean1;
$b=$y[$i]-$mean2;
$axb=$axb+($a*$b);
$a2=$a2+ pow($a,2);
$b2=$b2+ pow($b,2);
$corr= $axb / sqrt($a2*$b2);


}   

return $corr;
}

?>
使用数组()中的
判断数组1的元素是否在数组2中

$output = array();
foreach ($array1 as $i => $item) {
    if (in_array($item, $array2)) {
        $output[] = $rating[$i];
    } else {
        $output[] = 0;
    }
}

显示输入和预期输出检查问题顶部我添加了一个快照单击“我想要这种类型的输出”谢谢@RomanPerekhrest不要截图,尝试在代码段中添加预期输出。这让问题变得更清晰了!我还想获取每个项目的评分,并显示评分,而不是项目,但与项目进行比较…屏幕截图中的位置在哪里?抱歉,我更改了,但我错误地添加了旧的一个sorryanswer,如果你在那里?我不明白。33来自哪里?
$output = array();
foreach ($array1 as $i => $item) {
    if (in_array($item, $array2)) {
        $output[] = $rating[$i];
    } else {
        $output[] = 0;
    }
}