PHP数组比较JSON文件的函数



我在这种情况下需要一点帮助。

在我们公司内,我们使用Clocktool签到员工。在我们的Mainhall中,我们有一个带有公司相关信息的幻灯片的大屏幕。一张幻灯片包含一个显示签入员工的页面。此页面检查一次每5分钟自动刷新一次。

我在PHP中制作了脚本。它从ClockTool提供的端点读取JSON文件。该JSON文件包含所有在办公室的员工的列表。

我试图添加到此脚本的exentension如下:

<?php $checkedinPREV = array("John", "Mike", "Elisa", "PersonX", "PersonY"); //contains array of employees from previous check $checkedinNOW = array("John", "Mike", "Elisa", "MisterS", "Rico"); //contains array of employees from current check

$checked = in; $checkedin = CompareArray($checked, $checkedinPREV, $checkedinNOW); foreach ($checkedin as $value) { echo "$value checked in<br>"; //output should be: Misters checked in<br>Rico checked in<br> }

$checked = out; $checkedout = CompareArray($checked, $checkedinPREV, $checkedinNOW); foreach ($checkedout as $value) { echo "$value checked out<br>"; //output should be: PersonX checked out<br>PersonY checked out<br> }

所以我需要构建的" compareArray(("函数,对两个数组进行比较... - 如果$检查变量为" IN",则在输出数组中,与新添加的名称进行比较$ checkedinprev,$ checkedinnow ... - 如果$检查变量为" OUT",则在输出数组中,删除的名称比较$ checkedinprev,$ checkedinnow ...

我认为应该在我的功能中使用类似的东西:

if $checked == out // shorted out

$result = array_diff($checkedinPREV, $checkedinNOW);

if $checked == in // shorted out

$result = array_diff($checkedinNOW, $checkedinPREV);

我在正确的路上吗?还是有一种简单的方法来执行此操作?

尝试使用array_diff()

function CompareArray ($checked , $array1 , $array2){
  if($checked == "in"){
   return array_diff($array2,$array1);
  }
  else if($checked == "out"){
   return array_diff($array1,$array2);
  }
}

尝试这样的东西。

//in before
$inPrev = [1, 2, 3, 4, 5];
//in now
$inNow = [1, 2, 4, 6];
//people that left
$peopleOut = array_diff($inPrev, $inNow);
//people that came
$newIn = array_diff($inNow, $inPrev);

相关内容

  • 没有找到相关文章

最新更新