2つの配列を比較し、条件に基づいて特定の配列値を更新しようとしています。php特定の配列値を更新できません
欠席生徒の出席配列行き方:
$array1 =
array(
array("student_id" => "2",
"date" => "2016-04-24"),
array("student_id" => "6",
"date" => "2016-04-24"));
$attendance = json_decode(json_encode($array1));
は、すべての学生の学生のリストの配列を取得する:
欠席生徒の唯一の学生のIDを持ち出し$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>';
ここでは、学生配列に「理由」値を更新できません。
'json_decode(json_encode($配列1を));' .. whut? –
こんにちはジョン私はPHPの初心者ですし、多次元配列を標準オブジェクトの配列に変換しようとしていました – Ash
さて、まず、配列を使用してください。このようなオブジェクトへの変換の場合には利点はありません。 2) '$ students'はオブジェクトではなく配列なので、' $ students-> Reason'は '$ students [$ i]'を実際に更新したいので理にかなっていません。 3)$ studentsは、複数の配列の配列、または現在あなたのケースのオブジェクトです。あなたの 'in_array'は現在、スカラー値(ID)を配列やオブジェクトと比較しようとしていますが、これは一致しません。 –