我有一个对象并将它存储在一个数组中。但是,当从对象输出名称时,我想按“is_main”对它们进行排序。因此,值为 1 的 'is_main' 应始终排在第一位,然后是值为 0 的 'is_main'。这是对象
array(2){
[
1
]=> object(stdClass)#3729 (22){
[
"id_teacher"
]=> string(1)"2"[
"firstname"
]=> string(6)"John"[
"lastname"
]=> string(8)"Doe"[
"is_main"
]=> string(1)"0"
}[
2
]=> object(stdClass)#3723 (22){
[
"id_teacher"
]=> string(1)"2"[
"firstname"
]=> string(6)"John"[
"lastname"
]=> string(8)"Brown"[
"is_main"
]=> string(1)"1"
}
}
还有我的 PHP 代码:
$storage = array();
foreach($data->class_teacher_arr[$item->id_class] as $reference) {
$storage[] = $reference->firstname . ' ' . $reference->lastname . ' ' . $reference->is_main;
}
echo implode('<br/>', $storage);
我希望有人可以帮助我解决这个问题。
您可以将 usort 与回调一起使用,该回调定义您在 sort 函数中查找的内容。
$teachers = $data->class_teacher_arr[$item->id_class];
usort($teachers, function ($teacher) {
return isset($teacher->is_main) && !$teacher->is_main;
});
$storage = array();
foreach($teachers as $reference) {
$storage[] = $reference->firstname . ' ' . $reference->lastname . ' ' . $reference->is_main;
}
echo implode('<br/>', $storage);
如果设置了 is_main 值并且为真(等于 1),它将到达数组的顶部,一旦您回显出存储变量,您将在顶部看到所有 is_main 教师。
查看此文档以了解数组的回调排序。
https://www.php.net/manual/en/function.usort.php
快乐编码!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句