php—如果条件为真,如何使用foreach在空白数组中获取数组数据

kd3sttzy  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(264)

我有一个数组:

$stu_result( [exam_type] => 1 [subject_id] => 5 [converted_mark] =>5.00[student_id] => 186 [sub_name] => maths)

它的长度是15。
我想匹配考试类型,并将sub\u名称和转换后的分数存储在一个空白数组中。我试过这个代码:
这是我迄今为止尝试的代码

$result_exam1 = array();
foreach($stu_result as $result_temp){
 if($result_temp['exam_type'] == 1){
            $result_exam1['converted_mark'] = $result_temp['converted_mark'];
            $result_exam1['sub_name'] = $result_temp['sub_name'];
        }
}
flmtquvp

flmtquvp1#

希望这能帮助您:
注: $stu_result 应该是循环使用的多维数组 key value foreach循环的特性可以获得如下所有数据:

$result_exam1 = array();
foreach($stu_result as $key => $result_temp)
{
   if($result_temp['exam_type'] == 1)
   {
       $result_exam1[$key]['converted_mark'] = $result_temp['converted_mark'];
       $result_exam1[$key]['sub_name'] = $result_temp['sub_name'];
   }
}
print_r($result_exam1);
kzipqqlq

kzipqqlq2#

我为了$stu\的结果刷新了整个数组。这就是你要找的吗?

<?php
$stu_result = [
  array("exam_type" => 1, "subject_id" => 5,  "converted_mark" => 5.00, "student_id" => 186, "sub_name" => "maths"),
  array("exam_type" => 1, "subject_id" => 6,  "converted_mark" => 4.00, "student_id" => 186, "sub_name" => "maths"),
  array("exam_type" => 1, "subject_id" => 7,  "converted_mark" => 5.00, "student_id" => 186, "sub_name" => "maths"),
  array("exam_type" => 1, "subject_id" => 8,  "converted_mark" => 3.00, "student_id" => 186, "sub_name" => "maths"),
  array("exam_type" => 1, "subject_id" => 9,  "converted_mark" => 4.00, "student_id" => 186, "sub_name" => "maths"),
  array("exam_type" => 1, "subject_id" => 10, "converted_mark" => 3.00, "student_id" => 186, "sub_name" => "maths"),
  array("exam_type" => 1, "subject_id" => 11, "converted_mark" => 4.00, "student_id" => 186, "sub_name" => "maths"),
  array("exam_type" => 1, "subject_id" => 12, "converted_mark" => 5.00, "student_id" => 186, "sub_name" => "maths"),
  array("exam_type" => 1, "subject_id" => 13, "converted_mark" => 4.00, "student_id" => 186, "sub_name" => "maths"),
  array("exam_type" => 1, "subject_id" => 14, "converted_mark" => 5.00, "student_id" => 186, "sub_name" => "maths"),
  array("exam_type" => 1, "subject_id" => 15, "converted_mark" => 2.00, "student_id" => 186, "sub_name" => "maths"),
  array("exam_type" => 1, "subject_id" => 16, "converted_mark" => 1.00, "student_id" => 186, "sub_name" => "maths"),
  array("exam_type" => 2, "subject_id" => 17, "converted_mark" => 5.00, "student_id" => 186, "sub_name" => "not maths"),
  array("exam_type" => 2, "subject_id" => 18, "converted_mark" => 2.00, "student_id" => 186, "sub_name" => "not maths"),
  array("exam_type" => 2, "subject_id" => 19, "converted_mark" => 5.00, "student_id" => 186, "sub_name" => "not maths"),
];
$result_exam1 = array();
foreach($stu_result as $result_temp){
  if($result_temp['exam_type'] == 1){
    $row = array( //create an array, with two values and map the values
      "converted_mark" => $result_temp['converted_mark'],
      "sub_name"  => $result_temp['sub_name']
    );
    $result_exam1[] = $row; //append to the array
  }
}
var_dump($result_exam1);
?>

相关问题