使用不同的键交叉数组

时间:2017-02-22 16:26:02

标签: php arrays

如何交叉两个数组array1和array2。

$ array1包含数据库表中的数据,array1值的键必须从4开始并以2递增。表的结构是(id,name,purpose,t1,p1,t2,p2,t3,p3。 ..)

$ array1的键和值

$array2 = array(
    [1] => A, [2] => C, [3] => B, [4] => E, [5] => C
)

$ array2包含从提交的表单中收到的值。 array2值的键从1开始并以1递增。

$ array2的键和值

//values from submitted form
foreach($_POST as $answer) {
    $array2 = $_POST['question'];
    $qcount = sizeof($array2);
}
$j = 4;
$tCorr = 0;
for ($i = 1; $i < $qcount + 1; $i++) {
    $correct_array = array_intersect_assoc($array1[$j], $array2[$i]);
    $tCorr = sizeof($correct_array);
    $tCorr++;
    $j = $j + 2;
}

代码

(function(lastimg) {
  var links = document.querySelectorAll('area');
  for (var i = 0; i < links.length; i++) {
    links[i].addEventListener('click', function(e) {
      if (lastimg) {
        lastimg.classList.toggle('show');
      }
      lastimg = document.querySelector('div[class^="' + e.target.getAttribute("alt") + '"]');
      lastimg.classList.toggle('show');
    })
  }
})()

如何让$ array1从key 4($ j)开始,array2从key 1($ i)开始。 我们将非常感谢您的帮助

2 个答案:

答案 0 :(得分:0)

嗨,你的意思是

 for($i=1; $i<$qcount+1; $i++)
 {                
    $array1[$i];
    $array2[$i+3] ;
 }

答案 1 :(得分:0)

在我看来,如果您不想要它们,可以将$array1的前三个元素切片。

$arraySliced = array_slice($array1, 3);

然后像往常一样检查:

$correct_array = array_intersect_assoc($arraySliced, $array2);