回显包含“A”的数组字符串的 if 语句是什么


What will be the if statement to echo the strings of the array containing 'A'?

if语句将回显包含"A"的数组的字符串?

法典:

<?php
$students=array(
array('roll_no'=>1,'name'=>'Sagar','percentage'=>78,'grade'=>'A'),
array('roll_no'=>2,'name'=>'Rahul','percentage'=>50,'grade'=>'C'),
array('roll_no'=>3,'name'=>'Emir','percentage'=>60,'grade'=>'B'),
);
foreach($students as $array)
{
foreach($array as $value)
{
    if($value['grade']='A')
    {
echo $value;
    }
}
}
?>

输出:

Warning: Cannot use a scalar value as an array in C:'xampp'htdocs'php'Assignment41C.php on line 11
Warning: Illegal string offset 'grade' in C:'xampp'htdocs'php'Assignment41C.php on line 11
Aagar
Warning: Cannot use a scalar value as an array in C:'xampp'htdocs'php'Assignment41C.php on line 11
Warning: Illegal string offset 'grade' in C:'xampp'htdocs'php'Assignment41C.php on line 11
A
Warning: Cannot use a scalar value as an array in C:'xampp'htdocs'php'Assignment41C.php on line 11
Warning: Illegal string offset 'grade' in C:'xampp'htdocs'php'Assignment41C.php on line 11
Aahul
Warning: Cannot use a scalar value as an array in C:'xampp'htdocs'php'Assignment41C.php on line 11
Warning: Illegal string offset 'grade' in C:'xampp'htdocs'php'Assignment41C.php on line 11
A
Warning: Cannot use a scalar value as an array in C:'xampp'htdocs'php'Assignment41C.php on line 11
Warning: Illegal string offset 'grade' in C:'xampp'htdocs'php'Assignment41C.php on line 11
Amir
Warning: Cannot use a scalar value as an array in C:'xampp'htdocs'php'Assignment41C.php on line 11
Warning: Illegal string offset 'grade' in C:'xampp'htdocs'php'Assignment41C.php on line 11
A

你不需要第二个foreach .每个$array值存储所有key => value对。所以你只需要检查grade键的值:

foreach ($students as $array) { 
     // note a double `==` which is a comparison operator
     if ($array['grade'] == 'A') {    
         // print_r instead of `echo` cause `echo` won't output array properly
         print_r($array);             
     }
}

看起来你在这里使用了额外的循环。此外,您可能需要重新检查此$value['grade']='A'部分。在 if 条件中,单个 = 表示赋值操作。使用 == 或 ===。

尝试此操作以仅打印成绩:

   foreach ($students as $array) {
     if($array['grade']== 'A') {
         echo $array['grade'];   // To show the grade only
      }
   }

尝试打印所有字段:

foreach($students as $array){
    if($array['grade']== 'A'){
        foreach($array as $k => $v) {
            echo "$k : $v";
            echo "<br/>";
        }
    }
}

希望这有帮助。

和平! xD