获取一个项目在一个有说服力的集合中的位置或索引值



我需要你的帮助。我正试图从一个雄辩的收集阵列中获得学生的地位。

$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(的非布尔值。

最新更新