我已經看過這麼多重複的問題。真的很抱歉有重複的問題。但沒有找到正確的解決方案或者可能沒有得到正確的邏輯。我已經使用usort()。 我有以下數組。比較和排序2d數組的子值在php
Array
(
[0] => stdClass Object
(
[id] => 808
[ScreenName] => Dispatch
[OriginalName] => First Unit on Scene
[OriginalPrintName] => First Unit on Scene
[CurrentName] => Blank
)
[1] => stdClass Object
(
[id] => 809
[ScreenName] => Dispatch
[OriginalName] => EMS Agency
[OriginalPrintName] => EMS Agency
[CurrentName] => Blank
)
[2] => stdClass Object
(
[id] => 597
[ScreenName] => Dispatch
[OriginalName] => Date
[OriginalPrintName] => Date
[CurrentName] => Date
)
[3] => stdClass Object
(
[id] => 509
[ScreenName] => Dispatch
[OriginalName] => Incident #
[OriginalPrintName] => Incident #
[CurrentName] => Incident #
)
[4] => stdClass Object
(
[id] => 758
[ScreenName] => Dispatch
[OriginalName] => Run# /Call #
[OriginalPrintName] => Run#
[CurrentName] => Run Call
)
)
通過使用在以下條件
if (($y2->CurrentName == "") || ($y2->CurrentName == "Blank")) {
print $y2->OriginalName ;
} else {
print $y2->CurrentName ;
}
在列表,打印所有CurrentName但 如果currenName是空白然後打印ORIGINALNAME
像這些。
Date
Incident #
Run Call
Type Of Service Req
Complaint Reported
Response Urgency
Location Type
Address Type
Address
Address Cont
我想顯示這些列表albhabetically排序。 我usort()函數是
usort($yvals, function ($elem1, $elem2) {
if (($elem1->CurrentName == "" || $elem1->CurrentName == "Blank") && ($elem2->OriginalName == "" || $elem2->OriginalName == "Blank")) {
return strcmp($elem1->OriginalName, $elem2->OriginalName);
}else if(($elem1->CurrentName != "" || $elem1->CurrentName != "Blank") && ($elem2->CurrentName == "") || ($elem2->CurrentName == "Blank")){
return strcmp($elem1->CurrentName, $elem2->OriginalName);
}else{
return strcmp($elem1->CurrentName, $elem2->CurrentName);
}
});
它的地方,但不工作的全部。
什麼是當前輸出和什麼是預期輸出?請添加更多詳細信息,而不僅僅是「不工作」,以便人們瞭解您遇到的問題。 –
你想要得到什麼? – hassan
顯示輸入和輸出請 – calexandre