Php循环遍历两个数组


Php looping through two arrays

我发布的数据从一个网页到一个php页面与Ajax。它工作得很好。

我从$_POST中获取数据,循环遍历值并创建一个名为checklist的数组。

if($_POST != ''):
$dataset = $_POST['data'];
$checklist = array();
$eventid='';
foreach ($dataset as $i => $row)
{
   $uid = $row['box-id'];
   $state = $row['box-state'] ;
   $eventid = $row['e_id'];
   $checklist[] = array('uid'=>$uid, 
                    'state'=> $state);
}

Checklist有两个字段,uid和状态。

然后运行一个脚本,生成另一个名为$updates的数组。它循环遍历一组不同的对象,并输出数据以填充$updates的变量。$updates的结构如下所示。

 $updates[] =  array('uid'=>$uid, 
                     'state'=> $state,
                     'class' => $class,
                     'container' => $button_cont,
                     'closer' => $button_closer);

我要做的是比较$updates和$checklist。

我想知道通过uid匹配记录并比较状态的最有效方法。如果州匹配,我什么都不想做。

我读了一些关于循环和搜索的文章,但我想我已经研究这个太久了,因为它对我来说是希腊语。

将检查表保存为-

$checklist[$uid] = $state;

更新

$updates[$uid] = array('state'=> $state,
                 'class' => $class,
                 'container' => $button_cont,
                 'closer' => $button_closer);

则开始循环

foreach ($updates as $key => $update) { 
   if ($update['state'] == $checklist[$key]) {
       //your action
   }//compare the values
}

$key将作为uid。希望对你有所帮助