我有一個物件并將其存盤在一個陣列中。 然而,當從物件中輸出名稱時,我想按照'is_main'來排序。因此,值為1的'is_main'應該總是排在第一位,然后是值為0的'is_main'。 下面是物件
array(2){
[
1
]=> object(stdClass)#3729(22){
[
"id_teacher"/span>
]=> string(1)"2"[
"firstname"/span>
]=> string(6)"John"[
"lastname"/span>
]=> string(8)"Doe"[
"is_main"/span>
]=> string(1)"0"。
}[
2
]=> object(stdClass)#3723 (22){)
[
"id_teacher"/span>
]=> string(1)"2"/span>[
"firstname"/span>
]=> string(6)"John"[
"lastname"/span>
]=> 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) 。
我希望有人能幫助我解決這個問題。
uj5u.com熱心網友回復:
你可以使用usort和一個回呼,定義你在排序函式中尋找的東西。
$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被設定并且是true(等于1),它將進入陣列的頂部,一旦你呼出你的存盤變數,你將看到所有的is_main教師在頂部。
查看這個檔案,了解陣列的回呼排序。
https://www.php.net/manual/en/function.usort.php
編碼愉快!
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/321598.html
標籤:
上一篇:為什么<br>在php中不起作用?下面的代碼并沒有破壞句子
下一篇:使SVG具有回應性的問題
