我正在尝试比较两个数组并根据条件更新特定的数组值。
获取缺席学生的出勤率:
$array1 =
array(
array("student_id" => "2",
"date" => "2016-04-24"),
array("student_id" => "6",
"date" => "2016-04-24"));
$attendance = json_decode(json_encode($array1));
获取所有学生的学生列表数组:
$array2 =
array(
array("student_id" => "1",
"Reason" => "",
"date" => "2016-04-24"),
array("student_id" => "2",
"Reason" => "",
"date" => "2016-04-24"),
array("student_id" => "3",
"Reason" => "",
"date" => "2016-04-24"),
array("student_id" => "6",
"Reason" => "1",
"date" => "2016-04-24"));
$students = json_decode(json_encode($array2));
只取出缺席学生的学生证:
foreach($attendance as $att)
{ $atts[] = $att->student_id;}
在这里,我试图找出学生数组中的任何学生 ID 是否与不存在数组中的 ID 匹配。如果存在 ID,那么我将原因更新为"1"。否则会使原因为 0
for ($i = 1; $i <= count($students); $i++) {
if(in_array($atts[$i],$students))
{
$students->Reason='1';
}
else
{
$students->Reason='0';
}
}
echo '<pre>',print_r($students,1),'</pre>';
在这里,我无法使用"原因"值更新学生数组。
如果您只想将 array1
中的student_id
与 array2
中的student_id
进行比较,并在array2
中设置Reason
,如果它们彼此对应,请使用以下命令:
foreach ($array1 as $key1 => $value1) {
foreach ($array2 as $key2 => $value2) {
if ($value1['student_id'] == $value2['student_id']) {
$array2[$key2]['Reason'] = 1;
} else if ($array2[$key2]['Reason'] != 1) {
$array2[$key2]['Reason'] = 0;
}
}
}