[英]Reorder a multidimensional array containing objects
我有一個看起來像這樣的大數組對象:
$items = Array
(
[0] => stdClass Object
(
[id] => 1
[day] => 2
[created] => 2014-10-22 21:32:52
)
[1] => stdClass Object
(
[id] => 3
[day] => 3
[created] => 2014-10-22 21:35:19
)
[2] => stdClass Object
(
[id] => 4
[day] => 3
[created] => 2014-10-22 21:35:23
)
)
我需要對其進行重組,以便可以根據日值輸出結果。 例如,所有記錄都與day = 3相關聯,依此類推。
我已經有一個基於一周中幾天的代碼結構,因此我需要為此數組運行一個單獨的循環,以插入與現有結構每天匹配的記錄。
例如:
$wk = array(1 => "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
foreach ($wk as $k => $v) {
...
// insert records from $items
}
有沒有辦法重寫我的$ items數組來完成此操作? 如果是,怎么辦? 感謝任何建議。
這樣的事情應該起作用:
// Create new array
$daySortedItems = array();
// Iterate over old array
foreach ($items as $item) {
// Create index in new array if it doesn't exist
if (! isset($daySortedItems[$item->day])) {
$daySortedItems[$item->day] = array();
}
// Add item of old array to new index
$daySortedItems[$item->day][] = $item;
}
希望這與您先前的問題結合在一起,可以解決您的問題。 請注意,像這樣拋出熱修復程序被認為是不好的做法。 更好的解決方案是將問題解決在較低的級別:查詢數據庫時,直接在day
鍵上索引結果集。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.