我有兩種類型的數組的領域,我想根據排序:調整usort功能進行排序2的一個領域
月1日是REGISTRATION_DATE和第二是preregistration_date
和這裏所述的print_r陣列輸出(存儲在變量$ unsorted_users):
Array
(
[0] => stdClass Object
(
[id] => 120
[registration_date] => 2012-10-19 16:57:46
[username] => Jeff
)
[1] => stdClass Object
(
[id] => 121
[preregistration_date] => 2012-12-23 16:57:46
)
[2] => stdClass Object
(
[id] => 122
[registration_date] => 2012-11-30 16:57:46
[username] => Susan
)
)
我要訂購這個數組DESC通過REGISTRATION_DATE和preregistration_date所以它看起來像這樣:
陣列 ( [0] => stdClass的對象 ( [ID] => 121 [preregistration_date] => 2012 -12-23 16時57分46秒
)
[1] => stdClass Object
(
[id] => 122
[registration_date] => 2012-11-30 16:57:46
[username] => Susan
)
[2] => stdClass Object
(
[id] => 120
[registration_date] => 2012-10-19 16:57:46
[username] => Jeff
)
)
我的usort功能是:
$sorted_users = usort($unsorted_users, function($a, $b) {
return strcmp ($a->registration_date, $b->registration_date) ;
});
但是,它的排序只是REGISTRATION_DATE,如果沒有REGISTRATION_DATE例如爲:
[1] => stdClass Object
(
[id] => 121
[preregistration_date] => 2012-12-23 16:57:46
)
我得到一個錯誤。
如何調整我的功能,所以它是registration_date或preregistation_date排序?
Btw。 registration_date和preregistration_date的格式始終相同,並且兩者都不能位於一個對象中。所以,這不需要驗證。
在此先感謝。
您可以使用'property_exists()'在試圖訪問它之前檢查一個屬性是否存在。 – Barmar