我需要你的帮助。我正试图从一个雄辩的收集阵列中获得学生的地位。
$class_subject_marks_for_position =
AppModelsStudentMarks::where('year_id',$mark->year_id)
->where('class_id',$mark->class_id)
->where('exam_type_id',$mark->exam_type_id)
->where('assign_subject_id',$mark->assign_subject_id)
->pluck('marks')->toArray();
这将返回一组值,如55、77、99等。所有学生的分数
我还有第二个可变
$student_subject_marks_for_position =
AppModelsStudentMarks::where('year_id',$mark->year_id)
->where('class_id',$mark->class_id)
->where('exam_type_id',$mark->exam_type_id)
->where('assign_subject_id',$mark->assign_subject_id)
->where('student_id',$mark->student_id)
->value('marks');
这将返回一个类似55的值。为那个特定的学生。
现在我想要另一个变量或类似的东西,它将得到第一个变量中55的位置。这将返回类似1的值。
如有任何帮助,将不胜感激
{55,77,99}中55的索引是第0个索引,您可以从下面的代码中获得
for($i = 0; $i <= count($class_subject_marks_for_position); $i++){
if($student_subject_marks_for_position == $class_subject_marks_for_position[$i]){
$position = $i;
break;
}
}
您可以使用array_search函数。
在数组中搜索给定值,如果成功,则返回第一个对应的键
$index_of_55_in_first_array = array_search(
$student_subject_marks_for_position, //The value to search
$class_subject_marks_for_position) //The array
此外,验证索引是否为!==设置为FALSE,因为0是一个有效索引,但也是一个错误值。
此函数可能返回布尔值false,但也可能返回计算结果为false(0(的非布尔值。